我目前正在使用tkinter工作。除了一件事,我已经得到了代码。我对伺服电机的运动有关键。当我按下按键时,按比例尺不符合按键绑定的作用。如何使按比例键来进行按键绑定?
请参阅以下代码
....上面的GPIO设置代码未显示...
def fMin(event):
iDCServo = 2.5
pServo.ChangeDutyCycle(iDCServo) #this is pwm code for the servo motor
def fMin2(event):
iDCServo = 7.5
pServo.ChangeDutyCycle(iDCServo)
def fMax(event):
iDCServo = 12.5
pServo.ChangeDutyCycle(iDCServo)
def fMax2(event):
iDCServo = 7.5
pServo.ChangeDutyCycle(iDCServo)
def fOperation():
global guiSliderServo1, iLoop
while True:
win = Tk()
win.wm_title(">>>Servo Slider<<<")
win.geometry("800x100+0+0")
guiSliderServo1 = Scale(win, from_=-45, to_=45, orient=HORIZONTAL, length_=700, sliderlength_=10, tickinterval_=5, command=fSliderServo1)
guiSliderServo1.set(0)
guiSliderServo1.grid(row=0)
guiSliderServo1.pack(side=TOP)
guiSliderServo1.bind('<Key-q>', fMin)
guiSliderServo1.bind('<KeyRelease-q>', fMin2)
guiSliderServo1.bind('<Key-e>', fMax)
guiSliderServo1.bind('<KeyRelease-e>', fMax2)
guiSliderServo1.focus_set()
guiButtonExit = Button(win, text="Exit Slider", command=quit)
guiButtonExit.pack(side=BOTTOM)
win.mainloop()
...有一些关于外观,功能和进口的剩余代码没有显示,不确定,但可能只会弄乱真正的问题。
谢谢
答案 0 :(得分:0)
while True占用了计算机,因此没有时间让Tkinter更新小部件。您应该能够在上面的代码中删除while True并且没问题,因为Tkinter的mainloop()基本上做同样的事情,即不断检查按键。混合网格和包装,你使用两者,产生未知的结果。安顿一下并使用它。请注意,此代码不会更改比例,Button命令应为win.quit。