你好我有波纹管代码,它根据tkinter中检查按钮的状态向串口发送一个字符。这很好但我要求字符是通过串口发送的可重复性(每10秒左右),无论检查按钮的状态是否已经改变。我尝试添加while循环,但这会导致程序崩溃。任何帮助都会很棒。
(这是较大代码的一小部分,因为它的工作原理如上所述)
def setCheckButtonText():
if varCheckButton.get():
ser.write(bytes('L'))
else:
ser.write(bytes('H'))
def setCheckButtonText2():
if varCheckButton2.get():
ser.write(bytes('F'))
else:
ser.write(bytes('O'))
def setCheckButtonText3():
if varCheckButton3.get():
ser.write(bytes('N'))
else:
ser.write(bytes('Y'))
ser = serial.Serial('/dev/ttyUSB0', 9600)
varCheckButton = tk.IntVar()
tkCheckButton = tk.Checkbutton(
mGui,
variable=varCheckButton,
command=setCheckButtonText)
tkCheckButton.place(x=60, y=50)
varCheckButton2 = tk.IntVar()
tkCheckButton = tk.Checkbutton(
mGui,
variable=varCheckButton2,
command=setCheckButtonText2)
tkCheckButton.place(x=60, y=90)
varCheckButton3 = tk.IntVar()
tkCheckButton = tk.Checkbutton(
mGui,
variable=varCheckButton3,
command=setCheckButtonText3)
tkCheckButton.place(x=60, y=130)
答案 0 :(得分:0)
您可能希望封装发送和设置变量。
在您的方法中,您只需将相应的变量设置为字符,而不是直接发送它们。
在另一种方法中,您可以使用这些字符将它们发送到串行端口。您可以在延迟后使用after
来调用方法。
def send():
#Send variables here
mGui.after(10000, send)
mGui.after(10000, send)