Seri bağlantı noktasından veri alan bir program yazmaya çalışıyorum ve bu verilere göre Tkinter penceresini gerçek zamanlı olarak otomatik olarak günceller.Seri verilere dayalı olarak Tkinter penceresini dinamik olarak güncelleştirme
: bana bu hata veriyor RunningException in thread Thread-2: Traceback (most recent call last): File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/threading.py", line 522, in __bootstrap_inner self.run() File "analysis.py", line 52, in run self.lbl1.pack() File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk/Tkinter.py", line 1764, in pack_configure + self._options(cnf, kw)) RuntimeError: main thread is not in main loop
serialdata = []
data = True
class SensorThread(threading.Thread):
def run(self):
serial = serial.Serial('dev/tty.usbmodem1d11', 9600)
try:
while True:
serialdata.append(serial.readline())
except KeyboardInterrupt:
serial.close()
exit()
class GuiThread(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.root = Tk()
self.lbl = Label(self.root, text="")
def run(self):
self.lbl(pack)
self.lbl.after(1000, self.updateGUI)
self.root.mainloop()
def updateGUI(self):
msg = "Data is True" if data else "Data is False"
self.lbl["text"] = msg
self.root.update()
self.lbl.after(1000, self.updateGUI)
if __name == "__main__":
SensorThread().start()
GuiThread().start()
try:
while True:
# A bunch of analysis that sets either data = True or data = False based on serialdata
except KeyboardInterrupt:
exit()
:
Ben periyodik böyle, pencere ana iş parçacığı güncel verileri alır ve günceller pencere için ayrı bir iş parçacığı oluşturmaya çalıştınızBu hatayı google'a gönderdiğimde, çoğunlukla insanların iki farklı ileti dizisinden pencere ile etkileşime geçmeye çalıştığı mesajlar alıyorum, ancak bunu yaptığımı sanmıyorum. Herhangi bir fikir? Çok teşekkürler!
TK parçasını bir iş parçacığında çalıştırmayı denediniz mi? Sadece seri bağlantı noktasını bir iş parçacığında çalıştırın ve TK malzeme ana işlemde kalabilir. Bunun işe yarayabileceğinden şüpheleniyorum ... –
Seri bağlantı noktası verileri ve veri analizi döngüsü için başka bir iş parçacığı almak için bir iş parçacığı gibi mi? Bunu bir atış yapacağım. – user1363445