想象一下柜台.
如果单击该按钮,它将重置为0
如果您短按按钮,计数器将增加1,例如t = 1秒
如果长按按钮,计数器将增加10,直到释放按钮.
有人有想法吗?我试图通过第二个线程来完成它但我没有找到停止线程的可能性,就像你可以启动它一样
解决方法 如果你使用一个继承QAbstractbutton的小部件,这在PyQt中很容易做到.不需要任何计时器或单独的线程.只需使用内置的 auto-repeat功能,并记录当前状态.这是一个简单的演示:
from PyQt4 import QtGui,QtCoreclass button(QtGui.QPushbutton): def __init__(self,*args,**kwargs): QtGui.QPushbutton.__init__(self,**kwargs) self.setautoRepeat(True) self.setautoRepeatDelay(1000) self.setautoRepeatInterval(1000) self.clicked.connect(self.handleClicked) self._state = 0 def handleClicked(self): if self.isDown(): if self._state == 0: self._state = 1 self.setautoRepeatInterval(50) print 'press' else: print 'repeat' elif self._state == 1: self._state = 0 self.setautoRepeatInterval(1000) print 'release' else: print 'click'if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) button = button('Test button') button.show() sys.exit(app.exec_())总结
以上是内存溢出为你收集整理的Python:如何区分长按,短按按钮和单击全部内容,希望文章能够帮你解决Python:如何区分长按,短按按钮和单击所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)