pyside+pyqt实现鼠标右键菜单功能


Posted in Python onDecember 08, 2020

本文为大家分享了pyside pyqt实现鼠标右键菜单功能的具体代码,供大家参考,具体内容如下

在三维软件中使用pyside/pyqt编写gui界面时,为了艺术家使用操作的简洁,以及方便,经常会使用鼠标右键菜单进行界面与功能的交互。下面就介绍一下这一功能,当然了网上也有很多案列可供参考。

# -*- encoding: utf-8 -*-
try:
 from PySide import QtGui 
 from PySide import QtCore
except ImportError:
 from PySide2 import QtWidgets as QtGui
 from PySide2 import QtCore
import sys
class MainWindow(QtGui.QMainWindow):
 def __init__(self):
 super(MainWindow, self).__init__()
 self.createContextMenu()

 def createContextMenu(self):
 ''''' 
 创建右键菜单 
 '''
 # 必须将ContextMenuPolicy设置为Qt.CustomContextMenu
 # 否则无法使用customContextMenuRequested信号
 self.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
 self.customContextMenuRequested.connect(self.showContextMenu)

 # 创建QMenu
 self.contextMenu = QtGui.QMenu(self)
 self.actionA = self.contextMenu.addAction(u'添加')
 self.actionB = self.contextMenu.addAction(u'删除')
 # 将动作与处理函数相关联
 # 这里为了简单,将所有action与同一个处理函数相关联,
 # 当然也可以将他们分别与不同函数关联,实现不同的功能
 self.actionA.triggered.connect(self.actionHandler)
 self.actionB.triggered.connect(self.actionHandler)

 def showContextMenu(self, pos):
 ''''' 
 右键点击时调用的函数 
 '''
 # 菜单显示前,将它移动到鼠标点击的位置
 self.contextMenu.move(QtGui.QCursor().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_())

简单的右键菜单就实现了,连接功能就学要按照需求进行添加。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用rabbitmq实现网络爬虫示例
Feb 20 Python
详解Python中 __get__和__getattr__和__getattribute__的区别
Jun 16 Python
python交互式图形编程实例(三)
Nov 17 Python
Django web框架使用url path name详解
Apr 29 Python
Python Opencv实现图像轮廓识别功能
Mar 23 Python
django使用admin站点上传图片的实例
Jul 28 Python
Python-Flask:动态创建表的示例详解
Nov 22 Python
Python使用扩展库pywin32实现批量文档打印实例
Apr 09 Python
零基础小白多久能学会python
Jun 22 Python
利用Python实现斐波那契数列的方法实例
Jul 26 Python
详解使用Python写一个向数据库填充数据的小工具(推荐)
Sep 11 Python
python中slice参数过长的处理方法及实例
Dec 15 Python
基于PyQt4和PySide实现输入对话框效果
Feb 27 #Python
python使用PyQt5的简单方法
Feb 27 #Python
Python创建字典的八种方式
Feb 27 #Python
基于wxPython的GUI实现输入对话框(2)
Feb 27 #Python
基于wxPython的GUI实现输入对话框(1)
Feb 27 #Python
Python使用字典的嵌套功能详解
Feb 27 #Python
Python list列表中删除多个重复元素操作示例
Feb 27 #Python
You might like
PHPer 需要了解的 5 个 Composer 小技巧
2014/08/18 PHP
php单一接口的实现方法
2015/06/20 PHP
PHP实现可添加水印与生成缩略图的图片处理工具类
2018/01/16 PHP
Yii框架常见缓存应用实例小结
2019/09/09 PHP
javascript下IE与FF兼容函数收集
2008/09/17 Javascript
jquery ui对话框实例代码
2013/05/10 Javascript
jQuery表格插件datatables用法详解
2020/11/23 Javascript
由浅入深剖析Angular表单验证
2016/07/14 Javascript
将form表单通过ajax实现无刷新提交的简单实例
2016/10/12 Javascript
nodejs入门教程二:创建一个简单应用示例
2017/04/24 NodeJs
使用Node.js搭建静态资源服务详细教程
2017/08/02 Javascript
Vue运用transition实现过渡动画
2019/05/06 Javascript
微信小程序之下拉列表实现方法解析(附完整源码)
2019/08/23 Javascript
js实现文章目录索引导航(table of content)
2020/05/10 Javascript
[05:02]2014DOTA2 TI中国区预选赛精彩TOPPLAY第三弹
2014/06/25 DOTA
[49:15]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第二场 1月19日
2021/03/11 DOTA
Python中使用partial改变方法默认参数实例
2015/04/28 Python
python实现在sqlite动态创建表的方法
2015/05/08 Python
用python处理图片之打开\显示\保存图像的方法
2018/05/04 Python
Python将8位的图片转为24位的图片实现方法
2018/10/24 Python
使用keras实现BiLSTM+CNN+CRF文字标记NER
2020/06/29 Python
在Keras中CNN联合LSTM进行分类实例
2020/06/29 Python
python3.7.3版本和django2.2.3版本是否可以兼容
2020/09/01 Python
详解python使用金山词霸的翻译功能(调试工具断点的使用)
2021/01/07 Python
Monica Vinader官网:英国轻奢珠宝品牌
2020/02/05 全球购物
写出SQL四条最基本的数据操作语句(DML)
2012/12/12 面试题
Linux如何为某个操作添加别名
2013/03/01 面试题
文秘自荐信
2013/10/20 职场文书
学生干部的自我评价分享
2014/01/18 职场文书
护士毕业生自我鉴定
2014/02/08 职场文书
2014五一国际劳动节活动总结范文
2014/04/14 职场文书
日语专业毕业生自荐书
2014/06/18 职场文书
django上传文件的三种方式
2021/04/29 Python
SQL实现LeetCode(197.上升温度)
2021/08/07 MySQL
《遗弃》开发商删推文要跑路?官方回应:还在开发
2022/04/03 其他游戏
JS精髓原型链继承及构造函数继承问题纠正
2022/06/16 Javascript