python - 单击扫描ble的按钮后如何加载组合框?
问题描述
我对 tkinter 框架非常陌生,想知道是否有人可以帮助我解决我的问题。单击“扫描”按钮后,我正在尝试加载组合框。此扫描按钮基本上扫描特定的蓝牙设备并返回所有蓝牙设备。扫描完成后,它应该加载带有结果的组合框。然后从组合框中选择一个选项后,我想将该值传递给连接到蓝牙设备的另一个按钮功能。
class MyFirstGUI:
def __init__(self, master):
self.master = master
master.title("A simple GUI")
self.label = Label(master, text="This is our first GUI!")
self.label.pack()
self.button_scan = Button(master, text="Scan", command=self.scan1)
self.button_scan.pack()
self.box_value = StringVar()
self.cb = ttk.Combobox(master, textvariable=self.box_value)
self.cb.pack()
self.cb['values'] = self.scan1()
self.close_button = Button(master, text="Close", command=master.quit)
self.close_button.pack()
def scan1(self):
scanner = Scanner()
devices = scanner.scan(5)
data = []
for dev in devices:
scanData = dev.getScanData()
for (adtype, desc, value) in scanData:
if desc == 'Complete Local Name':
if 'Thunder Sense #' in value:
deviceMac = dev.addr
#deviceMac1= str(deviceMac)
deviceId = int(value.split('#')[-1])
deviceId2 = str(deviceId)
print(deviceMac)
data.append(deviceMac)
#data.append(deviceMac)
print(data)
return data
root = Tk()
my_gui = MyFirstGUI(root)
root.mainloop()
我可以打印 deviceMac 以及列表,但我似乎无法加载组合框。谢谢
解决方案
您scan1
不必返回数据。combobox
扫描完成后直接修改 的值即可。
class MyFirstGUI:
def __init__(self, master):
...
self.box_value = StringVar()
self.cb = ttk.Combobox(master, textvariable=self.box_value)
self.cb.pack()
...
def scan1(self):
scanner = Scanner()
devices = scanner.scan(5)
data = []
for dev in devices:
scanData = dev.getScanData()
for (adtype, desc, value) in scanData:
if desc == 'Complete Local Name':
if 'Thunder Sense #' in value:
deviceMac = dev.addr
# deviceMac1= str(deviceMac)
deviceId = int(value.split('#')[-1])
deviceId2 = str(deviceId)
print(deviceMac)
data.append(deviceMac)
self.cb["values"] = data
推荐阅读
- asp.net - WebForms、Angular 7、WebAPI 和 IdentityServer 3
- sql - 如何从 REST API URL 将 JSON 数据导入 SQL 中的批量单元格
- javascript - 尝试使用 readAsText 时出现 TypeMismatchError
- java - PDFBox 避免在关闭之前是否要保存更改
- javascript - 重新格式化对象数组
- vb.net - 我应该转换成什么数据类型,因为它总是告诉我 mscorlib.dll 中出现“system.FormatException”类型的错误未处理异常
- java - 有没有办法循环输入请求,直到用户满足 BigInteger 中的条件?
- python - 使用 lambda 中的 pandas 从 s3 读取 excel 文件并转换为 csv
- java - 使用正则表达式的 jsonAssert 嵌套 Json 验证
- docker - 为什么我无法连接到我的 socket.io 服务器?