在键输入期间不缩放更新

时间:2016-02-29 23:57:19

标签: python-3.x tkinter slider

我目前正在使用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()

...有一些关于外观,功能和进口的剩余代码没有显示,不确定,但可能只会弄乱真正的问题。

谢谢

1 个答案:

答案 0 :(得分:0)

while True占用了计算机,因此没有时间让Tkinter更新小部件。您应该能够在上面的代码中删除while True并且没问题,因为Tkinter的mainloop()基本上做同样的事情,即不断检查按键。混合网格和包装,你使用两者,产生未知的结果。安顿一下并使用它。请注意,此代码不会更改比例,Button命令应为win.quit。