Tkinter - 不断更新变量,无需按下按钮
Tkinter - update variable constantly, without pressing the button
所以这是我的 python 脚本:
from Tkinter import *
#import RPi.GPIO as GPIO
#GPIO.setmode(GPIO.BOARD)
#GPIO.setup(12, GPIO.OUT)
#p = GPIO.PWM(12, 50)
#p.start(0)
def cmd():
speed = "Rotor speed= " + str(var.get())
label.config(text = speed)
#dc = int(var.get())
#p.ChangeDutyCycle(dc)
tk = Tk()
var = DoubleVar()
scale = Scale(tk, from_=100, to=0, variable = var)
scale.pack(anchor=CENTER)
button = Button(tk, text="Set speed", command=cmd)
button.pack(anchor=CENTER)
label = Label(tk)
label.pack()
tk.mainloop()
print("Closing the program and cleaning up the GPIO")
#p.stop()
#GPIO.cleanup()
有些部分现在被注释掉了,因为我正在我的 PC 上而不是 Raspberry Pi 上处理代码。我把它们留给了上下文。
所以这段代码为我的直升机创建了一个非常简单的 GUI。它工作得很好,但要更改我的 PWM 引脚(cmd()
功能)的占空比,我必须按下按钮。
我试图让我的程序自动检查滑块的值,但我无法弄明白。
关于如何更改此代码以更改 dc
的值以及滑块移动的任何想法,而无需按下按钮来更新它?
你可以这样做:因为 Scale
也有一个 command
参数(每次修改比例尺时调用它),它也传递 scale.get()
的值打电话的时候。这样,您就可以摆脱按钮了。
from Tkinter import *
def cmd(speed):
speed_text = "Rotor speed= " + str(speed)
label.config(text = speed_text)
# or you can change it like this(many people prefers this way more):
# label['text'] = speed_text
# dc = speed
tk = Tk()
var = DoubleVar()
scale = Scale(tk, from_=100, to=0, variable = var, command=cmd)
scale.pack(anchor=CENTER)
label = Label(tk)
label.pack()
tk.mainloop()
所以这是我的 python 脚本:
from Tkinter import *
#import RPi.GPIO as GPIO
#GPIO.setmode(GPIO.BOARD)
#GPIO.setup(12, GPIO.OUT)
#p = GPIO.PWM(12, 50)
#p.start(0)
def cmd():
speed = "Rotor speed= " + str(var.get())
label.config(text = speed)
#dc = int(var.get())
#p.ChangeDutyCycle(dc)
tk = Tk()
var = DoubleVar()
scale = Scale(tk, from_=100, to=0, variable = var)
scale.pack(anchor=CENTER)
button = Button(tk, text="Set speed", command=cmd)
button.pack(anchor=CENTER)
label = Label(tk)
label.pack()
tk.mainloop()
print("Closing the program and cleaning up the GPIO")
#p.stop()
#GPIO.cleanup()
有些部分现在被注释掉了,因为我正在我的 PC 上而不是 Raspberry Pi 上处理代码。我把它们留给了上下文。
所以这段代码为我的直升机创建了一个非常简单的 GUI。它工作得很好,但要更改我的 PWM 引脚(cmd()
功能)的占空比,我必须按下按钮。
我试图让我的程序自动检查滑块的值,但我无法弄明白。
关于如何更改此代码以更改 dc
的值以及滑块移动的任何想法,而无需按下按钮来更新它?
你可以这样做:因为 Scale
也有一个 command
参数(每次修改比例尺时调用它),它也传递 scale.get()
的值打电话的时候。这样,您就可以摆脱按钮了。
from Tkinter import *
def cmd(speed):
speed_text = "Rotor speed= " + str(speed)
label.config(text = speed_text)
# or you can change it like this(many people prefers this way more):
# label['text'] = speed_text
# dc = speed
tk = Tk()
var = DoubleVar()
scale = Scale(tk, from_=100, to=0, variable = var, command=cmd)
scale.pack(anchor=CENTER)
label = Label(tk)
label.pack()
tk.mainloop()