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使用点操作符访问字典(dict)数据的方法
Mar 16 Python
Python及PyCharm下载与安装教程
Nov 18 Python
Python生成8位随机字符串的方法分析
Dec 05 Python
python绘制双柱形图代码实例
Dec 14 Python
对PyQt5中的菜单栏和工具栏实例详解
Jun 20 Python
浅析PyTorch中nn.Module的使用
Aug 18 Python
python爬虫之爬取百度音乐的实现方法
Aug 24 Python
pycharm无法导入本地模块的解决方式
Feb 12 Python
基于Python的Jenkins的二次开发操作
May 12 Python
解决pymysql cursor.fetchall() 获取不到数据的问题
May 15 Python
python tkinter实现连连看游戏
Nov 16 Python
详解Python 中的 defaultdict 数据类型
Feb 22 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
php中利用post传递字符串重定向的实现代码
2011/04/21 PHP
php中将数组转成字符串并保存到数据库中的函数代码
2013/09/29 PHP
php实现统计目录文件大小的函数
2015/12/25 PHP
session 加入redis的实现代码
2016/07/15 PHP
PHP面向对象程序设计之对象克隆clone和魔术方法__clone()用法分析
2019/06/12 PHP
JavaScript TO HTML 转换
2006/06/26 Javascript
让网页根据不同IE版本显示不同的内容
2009/02/08 Javascript
javascript div 遮罩层封锁整个页面
2009/07/10 Javascript
基于Jquery 解决Ajax请求的页面 浏览器后退前进功能,页面刷新功能实效问题
2010/12/11 Javascript
Javascript中对象继承的实现小例
2014/05/12 Javascript
Angularjs编写KindEditor,UEidtor,jQuery指令
2015/01/28 Javascript
详解Sea.js中Module.exports和exports的区别
2017/02/12 Javascript
AngularJS监听路由变化的方法
2017/03/07 Javascript
实例讲解DataTables固定表格宽度(设置横向滚动条)
2017/07/11 Javascript
Vue中父子组件通讯之todolist组件功能开发
2018/05/21 Javascript
JQuery通过后台获取数据遍历到前台的方法
2018/08/13 jQuery
vue弹窗插件实战代码
2018/09/08 Javascript
layui 上传插件 带预览 非自动上传功能的实例(非常实用)
2019/09/23 Javascript
Vue 用Vant实现时间选择器的示例代码
2019/10/25 Javascript
javascript 对象 与 prototype 原型用法实例分析
2019/11/11 Javascript
[56:46]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 VP vs Effect
2018/04/01 DOTA
Python库urllib与urllib2主要区别分析
2014/07/13 Python
简单了解Python3 bytes和str类型的区别和联系
2019/12/19 Python
详解有关PyCharm安装库失败的问题的解决方法
2020/02/02 Python
django-crontab实现服务端的定时任务的示例代码
2020/02/17 Python
Python短信轰炸的代码
2020/03/25 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
2020/10/20 Python
css3学习系列之移动属性详解
2017/07/04 HTML / CSS
AmazeUI 输入框组的示例代码
2020/08/14 HTML / CSS
Hotels.com香港酒店网:你的自由行酒店订房专家
2018/01/22 全球购物
英国奢华护肤、美容和Spa品牌:Temple Spa
2019/11/02 全球购物
甲方资料员岗位职责
2013/12/13 职场文书
巴西世界杯32强口号
2014/06/05 职场文书
大四学生个人总结
2015/02/15 职场文书
财务工作失误检讨书
2015/02/19 职场文书
Redis监控工具RedisInsight安装与使用
2022/03/21 Redis