PyQt4中自定义事件
来源:互联网 发布:贴吧去性别软件 编辑:程序博客网 时间:2024/05/22 06:57
PyQt4中自定义鼠标移动事件
- PyQt4中自定义鼠标移动事件
- 重写事件过滤器
- 重写鼠标移动事件
重写事件过滤器
通过在全局或者相应的widget重写事件过滤器,并对事件进行判断来重新定义鼠标移动事件
该方法的优点是扩展性高,适合需要重写多个事件的场景
- 首先在主方法中添加代码
'''在__main__方法中启动过滤器'''if __name__ == '__main__': app = QtGui.QApplication(sys.argv) filmerBase = FilmerBase() filmerBase.show() app.installEventFilter(filmerBase) #为重写事件过滤器的设置 sys.exit(app.exec_())
- 接着重新定义类的事件过滤器
'''重写鼠标过滤器,提示鼠标位置'''def eventFilter(self,source,event): if event.type() == QtCore.QEvent.MouseMove: if event.button() == QtCore.Qt.NoButton: #没有点击鼠标 pos = event.pos() self.setToolTip('x: %d, y: %d' % (pos.x(), pos.y())) else: pass #添加其他代码
重写鼠标移动事件
和第一种方法不同,此方法直接定义需要重写的类方法,不需要过滤判断事件
这种方法的优点是可以针对性的自定义功能,比较简便,不需要在开始进行全局设置,但不适合进行复杂的开发
- 直接定义类方法
值得注意的是,鼠标移动事件需要激活鼠标轨道追踪,否则无点击移动鼠标不会触发事件
class TasksCookie(QtGui.QWidget): def __init__(self): super(TasksCookie,self).__init__() self.setupUi() self.setMouseTracking(True) #激活鼠标轨道追踪 '''重写鼠标悬浮移动事件''' def mouseMoveEvent(self,event): if event.buttons() == QtCore.Qt.NoButton: #鼠标无点击拖动 pos = event.pos() self.setToolTip('x: %d, y: %d' % (pos.x(), pos.y())) elif event.buttons() == QtCore.Qt.LeftButton: #鼠标左击拖动 print "Left click drag" elif event.buttons() == QtCore.Qt.RightButton: #鼠标右击拖动 print "Right click drag"
阅读全文
1 0
- PyQt4中自定义事件
- PyQt4 单击事件
- PyQt4的事件与信号
- 【PyQt4 实例27】事件过滤器
- 详解Pyqt4事件和信号
- Flex中自定义事件
- wxPython中自定义事件
- Flex中自定义事件
- QT中自定义事件
- Flex中自定义事件
- Flex中自定义事件
- python中自定义事件
- Flex中自定义事件
- quick中自定义事件
- Extjs中自定义事件
- jQuery中自定义事件
- QT中自定义事件
- PyQt4编程之自定义插槽
- Qt中QMessageBox的使用
- vi和vim命令
- windows7+vs2015 +gtx 1080ti环境下安装yolo v2
- Java概述
- 购物车实现(模仿京东)
- PyQt4中自定义事件
- js和html常用属性
- Java高级篇-8-构造方法和初始化
- MySql基本语法—函数
- linux 下压缩 自定文件夹下的所有文件
- firefly安装
- Eclipse debug Source not found
- ubuntu下查看cpu信息
- 一个电商项目收到的启发