PyQt 右键菜单的实现(Qt.CustomContextMenu方式)
来源:互联网 发布:淘宝手机旗舰店靠谱吗 编辑:程序博客网 时间:2024/05/16 05:45
从Qt文档Qt::ContextMenuPolicy的值可以看出,实现右键菜单的方式有三种,这对于所有继承于QWidget的类都是通用的,在用每一种方式实现之前都要调用QWidget::setContextMenuPolicy(Qt::ContextMenuPolicy)方法,将要需要设置右键菜单的组件的ContextMenuPolicy值设为相应的值,下面我分享一下用Qt::CustomContextMenu方式实现右键菜单的例子,用的是python语言,因为python比较简单。
#coding=utf-8import sysfrom PyQt4 import QtGuifrom PyQt4.QtCore import Qtclass MainWindow(QtGui.QMainWindow):def __init__(self):super(MainWindow, self).__init__()self.createContextMenu()def createContextMenu(self):'''创建右键菜单'''# 必须将ContextMenuPolicy设置为Qt.CustomContextMenu# 否则无法使用customContextMenuRequested信号self.setContextMenuPolicy(Qt.CustomContextMenu)self.customContextMenuRequested.connect(self.showContextMenu)# 创建QMenuself.contextMenu = QtGui.QMenu(self)self.actionA = self.contextMenu.addAction(u'动作A')self.actionB = self.contextMenu.addAction(u'动作B')self.actionC = self.contextMenu.addAction(u'动作C')# 将动作与处理函数相关联# 这里为了简单,将所有action与同一个处理函数相关联,# 当然也可以将他们分别与不同函数关联,实现不同的功能self.actionA.triggered.connect(self.actionHandler)self.actionB.triggered.connect(self.actionHandler)self.actionB.triggered.connect(self.actionHandler)def showContextMenu(self, pos):'''右键点击时调用的函数'''# 菜单显示前,将它移动到鼠标点击的位置self.contextMenu.move(self.pos() + pos)self.contextMenu.show()def actionHandler(self):'''菜单中的具体action调用的函数'''print 'action handler'if __name__=='__main__':app = QtGui.QApplication(sys.argv)window = MainWindow()window.show()sys.exit(app.exec_())
如果大家认为实现的方式有不妥,欢迎拍砖,如果大家还有什么好的实现方式,还请分享一下!
- PyQt 右键菜单的实现(Qt.CustomContextMenu方式)
- pyqt中QwebView中消除默认的右键菜单(基于QT设计师)
- qt 实现右键菜单
- Qt中TreeView的右键菜单实现
- PyQt按钮右键菜单
- QT实现右键快捷菜单
- QT实现右键快捷菜单
- Qt实现右键快捷菜单
- Qt之右键菜单实现
- Qt学习之给QPushButton添加菜单CustomContextMenu方法
- Qt右键菜单的添加
- Qt实现系统托盘以及托盘的右键菜单
- Qt:QListWidget的item上实现右键菜单
- Qt 前端显示(置顶)、 居中和右键菜单的实现
- 【工具代码】JavaScript实现右键菜单的一种方式
- TOC右键菜单的两种实现方式
- Qt之自定义菜单(右键菜单)
- Qt之自定义菜单(右键菜单)
- java中equals和==的区别
- getopt_long及其使用
- 项目延期10个月后还没有做完全部功能的总结
- flex 多条件组合过滤函数
- 无需任何软件,简单修改Win7开机登陆界面背景图片
- PyQt 右键菜单的实现(Qt.CustomContextMenu方式)
- Hibernate Criteria可以只查询出表中几个字段
- 看Siri如何革新911系统
- Android下使用dlopen函数动态调用.so链接库
- 使用Ganglia对hadoop进行监控
- 备忘录
- 在 NetBeans IDE 中调试 PHP 源代码
- 一个当了爹的程序员的自白
- 图形的 宏定义