Я новичок в python GUI. Я попытался отобразить значение моего датчика (потенциометра) от Arduino до Python, используя метку от tkinter. Я хочу, чтобы текст метки обновлялся каждую секунду.
Сначала я не могу обновить метку, но когда я печатаю значение датчика в консоль, он работает нормально.
Но когда мне удалось обновить текст моей метки, значение метки просто отображает постоянное значение, даже если я изменяю значение датчика.
Мне нужна помощь, чтобы решить эту проблему, я что-то не так сделал?
import serial
import tkinter as tk
from tkinter import *
Arduino = serial.Serial('COM4', baudrate=9600)
Arduino.flushInput()
root = tk.Tk()
root.geometry("320x200")
value = StringVar()
label_1 = Label(root, textvariable = value)
label_1.pack()
def measure():
data = Arduino.readline()
value.set(data)
print(data)
root.after(1000, measure())
measure()
root.mainloop()
Я понял, когда я вызываю функцию в root .after (1000, measure ()), я получу правильное значение, но окно GUI не будет открыто, и это сообщение об ошибке:
если нет win32.ClearCommError (self._port_handle, ctypes.byref (flags), ctypes.byref (comstat)): ctypes.ArgumentError: аргумент 2:: максимальная глубина рекурсии превышена при > вызывая Python объект
Но когда я только пишу, вызываю имя функции, не используя () в root .after (1000, measure), открывается окно GUI и обновление метки, но значение не обновлено ng правильно.
Любое предложение, что я могу сделать, чтобы это исправить?