Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从函数更新Tkinter标签_Python_Tkinter_Arduino_Usb - Fatal编程技术网

Python 从函数更新Tkinter标签

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

我已经创建了一个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 = 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()