我想做两个按钮(+和-)可以改变音量。但是如果我想增加音量,我想继续按这个按钮。你知道如何检查用户是否按下了按钮吗?你知道吗
def volumeUp():
currentVolume = m.getvolume()[0]
volumeSlider.set(currentVolume + 5)
def volumeDown():
currentVolume = m.getvolume()[0]
volumeSlider.set(currentVolume - 5)
volumeDownButton = Button(win, text = "-", font = myFont, command = volumeDown, height = 1, width = 1)
volumeDownButton.pack(side = BOTTOM)
volumeUpButton = Button(win, text = "+", font = myFont, command = volumeUp, height = 1, width = 1)
volumeUpButton.pack(side = BOTTOM)
你可以做的是让按钮触发一个功能,改变音量,然后安排自己在一段时间后(例如100毫秒)再次运行。然后,当按钮被释放时,您可以取消预定的重复功能,该功能会改变音量以中断循环。你知道吗
我对你的代码做了一点修改,来举个例子:
注意事项:
command
,因为这不能让您灵活地知道按钮何时被释放。相反,我做了两个绑定,一个是按下按钮时绑定,一个是松开按钮时绑定。你知道吗after
方法在设置的毫秒数之后安排对同一函数的新调用,我将对该计划函数的引用保存在全局变量中,以便能够在release函数中再次使用它来用after_cancel
取消它.bind
用一个事件对象调用函数,而after
调用一个没有参数的函数,因为两者都调用同一个函数,所以我这样做是为了可以用参数和没有参数调用函数(e=None
)也使用
after
的fhdrsdg's answer的替代方法是测量Button
的state
值并检测它当前是否为active
,为此,我们将一个函数绑定到Button
,该函数检查state
,然后如果state
为active
,则增加一个值,然后使用after
在短暂延迟后再次调用该函数:你知道吗相关问题 更多 >
编程相关推荐