Python 从函数更新Tkinter标签
我已经创建了一个Arduino nano的设置,它连接到一个超声波传感器和一个Raspberry Pi 2 B型。Arduino正在触发和读取超声波传感器,并通过USB每0,1秒发送一次数据。连接一切正常,当我通过Python Shell与Arduino对话时,我得到了结果。现在,我想创建一个漂亮的Python GUI,阅读距离,下面是代码:Python 从函数更新Tkinter标签,python,tkinter,arduino,usb,Python,Tkinter,Arduino,Usb,我已经创建了一个Arduino nano的设置,它连接到一个超声波传感器和一个Raspberry Pi 2 B型。Arduino正在触发和读取超声波传感器,并通过USB每0,1秒发送一次数据。连接一切正常,当我通过Python Shell与Arduino对话时,我得到了结果。现在,我想创建一个漂亮的Python GUI,阅读距离,下面是代码: from Tkinter import * import time import serial DEVICE = '/dev/ttyUSB0' BAUD
from Tkinter import *
import time
import serial
DEVICE = '/dev/ttyUSB0'
BAUD = 9600
ser = serial.Serial(DEVICE, BAUD)
root = Tk()
labeldat = IntVar(value=1)
def getdata() :
labeldat = 0
while labeldat == 0 :
labeldat = ser.readline()
root.update_idletasks()
root.title("Abstandsmessung mit Ultraschall")
Label(text="Der Abstand zum naechsten Objekt betraegt:", fg="#0A116B").pack()
Label(root, textvariable=labeldat, fg="#0A116B").pack()
Button(text='Hole Abstand!', command=getdata, background="#33D63B", fg="#FFFFFF").pack()
root.mainloop()
现在我得到了第一个标签,上面写着“Der Abstrand zum naechsten Objekt betraegt:”,第二个标签上写着:“1”。当然,我也得到了一个按钮,标有“洞Absand!”。
问题是,当我点击按钮时,什么也没发生。如何在每次更改labeldat
时更新标签
谢谢你帮助我,
顺致敬意,
Armin而不是重新定义
labeldat
,(顺便说一句,您实际上没有这样做,因为您没有声明您引用的是全局变量),只需使用Tkinter.IntVar.set()
:
亲爱的先生,很抱歉,但你知道,对我们许多人来说,“德·阿博德和祖姆……”一词毫无意义。毕竟不是每个人都是德国人。如果可能的话,我建议你翻译这些错误。
def getdata() :
labeldat.set(0)
while labeldat.get() == 0 :
labeldat.set(ser.readline())
root.update_idletasks()