2016-03-29 25 views
0

Bir ultrasonik sensöre bağlı bir Arduino nano ve bir Raspberry Pi 2 Model B kurulumu oluşturdum. Arduino, ultrasonik sensörü tetikliyor ve okuyor ve her 0 USB üzerinden 1 saniye. Her şey bağlantı ile tamam, ve ben Python Shell üzerinden Arduino ile konuştuğumda sonuçlar elde ederim.Update Tkinter Label işlevinden

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() 

Şimdi ilk etiket olsun "Der Abstand zum naechsten Objekt betraegt:" Şimdi Distance okumak, güzel Python GUI yaratmak istedik, burada kodudur Metin içeren ikinci etiket: "1". Tabii ki "Delik Abstand!" Ile etiketlenmiş bir Düğme de alıyorum. Sorun şu ki, düğmeye bastığımda hiçbir şey olmuyor. Etiketi her zaman labeldat değiştirildiği zaman nasıl güncelleyebilirim?

Bana yardım ettiğin için teşekkür ederim, Saygılarımızla Armin

+1

Özür dilemek sevgili Efendim, ama çoğumuz için sözler "Der Abstand zum ..." anlam ifade etmediğini farkında mısın: küresel değişken), sadece Tkinter.IntVar.set() kullanın. Sonuçta herkes Alman değil. Mümkünse bu hataları tercüme etmenizi öneririm. –

cevap

0

yerine yeniden tanımlayarak size başvuruyorsunuz beyan yok çünkü bu arada yaptığınızı değildir aslındalabeldat, (

def getdata() : 
    labeldat.set(0) 
    while labeldat.get() == 0 : 
     labeldat.set(ser.readline()) 
    root.update_idletasks()