python - 带线程的全局变量和 Tkinter
问题描述
所以我是一个编程新手,我正在努力让这个线程工作。但是,我正在努力使用线程和 tkinter。我认为问题出在全局变量上,但我真的不知道是不是这样。任何帮助表示赞赏。(此代码也已修改,我需要线程,因为函数最终会有一个循环)。
from tkinter import *
import serial
import threading
root = Tk()
root.title("MIDI Piano")
root.geometry('250x250+250+250')
ser = None
clicked = StringVar()
COM_ports = ["COM1",
"COM2",
"COM3",
"COM4",
"COM5",
"COM6",
"COM7",
"COM8",
"COM9",
"COM10"]
def serial_comms():
global ser
global clicked
COM = clicked.get()
ser = serial.Serial(COM, 9600)
clicked.set("COM1")
# note there are definitions here and other widgets
# Widgets that need to be updated
COM_frame = LabelFrame(root, text="Choose COM Port", padx=30, pady=30)
COM_frame.place(x=1, y=200)
COM_drop = OptionMenu(COM_frame, clicked, *COM_ports)
COM_drop.pack()
COM_button = Button(COM_frame, text="Execute Port Selection",
command=threading.Thread(serial_comms).start())
COM_button.pack()
root.mainloop()
任何帮助,将不胜感激!提前致谢 :)
解决方案
推荐阅读
- popper.js - 使用 popper.js 隐藏和取消隐藏文本
- terraform - 使用地图查找将 Terraform 插值到 var
- javascript - Jquery MultiSelect Dropdown 无法正确处理来自 Ajax 调用的数据
- ruby - 在 Windows 10 上安装 Ruby 2.3.2
- c# - 连接到 Azure 文件存储上的 SQLite 数据库
- javascript - 无法匹配任何路由。角度误差?
- python - 如何对列表中的元素进行分组?
- python - 如何在 Matplotlib 中使用 Latex 正确编写“<”和“>”符号
- android - 如何强制 FileBackupAgent 运行?
- swift - 尝试与活动视图控制器共享文件中的 json 字符串