【发布时间】:2020-04-15 20:56:27
【问题描述】:
我正在尝试使用 tkinter 在 python 中制作一个滑块,并有一个循环不断更新滑块中的数据。在最终产品中,我想要一排 LED 逐字点亮滑块。问题是 while 循环停止了其余代码的工作,并且带有滑块的窗口不会打开。这是我的代码:
import RPi.GPIO as GPIO
from tkinter import *
GPIO.setmode(GPIO.BCM)
GPIO.setup(26, GPIO.OUT)
GPIO.setwarnings(False)
def value():
led.get()
master = Tk()
master.geometry('100x100')
led = Scale(master, from_=5, to=1)
led.pack()
while True:
print(value())
mainloop()
【问题讨论】:
-
tkinter 有
root.after(millisecond, function),您可以使用它来更改某些内容并再次运行root.after(millisecond, function)稍后再进行更改,等等。 -
也许你应该在
Scale改变值时使用Scale(..., command=on_change)来运行函数on_change- 你将不需要循环。看我的回答。