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下载微信公众号相关文章
Feb 26 Python
一个可以套路别人的python小程序实例代码
Apr 09 Python
把JSON数据格式转换为Python的类对象方法详解(两种方法)
Jun 04 Python
Pytorch实现GoogLeNet的方法
Aug 18 Python
用python实现英文字母和相应序数转换的方法
Sep 18 Python
Python 生成器,迭代,yield关键字,send()传参给yield语句操作示例
Oct 12 Python
python 计算概率密度、累计分布、逆函数的例子
Feb 25 Python
Python线程threading模块用法详解
Feb 26 Python
Django Model中字段(field)的各种选项说明
May 19 Python
python使用scapy模块实现ping扫描的过程详解
Jan 21 Python
python中封包建立过程实例
Feb 18 Python
C3 线性化算法与 MRO之Python中的多继承
Oct 05 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
PHP7引入的"??"和"?:"的区别讲解
2019/04/08 PHP
自动检查并替换文本框内的字符
2006/06/30 Javascript
jquery实现的超出屏幕时把固定层变为定位层的代码
2010/02/23 Javascript
JavaScript中判断函数是new还是()调用的区别说明
2011/04/07 Javascript
jQuery 开发者应该注意的9个错误
2012/05/03 Javascript
JS实现仿新浪微博发布内容为空时提示功能代码
2015/08/19 Javascript
Bootstrap3.0学习教程之JS折叠插件
2016/05/27 Javascript
JavaScript中push(),join() 函数 实例详解
2016/09/06 Javascript
Vue.js之slot深度复制详解
2017/03/10 Javascript
简单谈谈关于 npm 5.0 的新坑
2017/06/08 Javascript
vue-resource + json-server模拟数据的方法
2017/11/02 Javascript
微信小程序左滑动显示菜单功能的实现
2018/06/14 Javascript
element-ui upload组件多文件上传的示例代码
2018/10/17 Javascript
PHPStorm中如何对nodejs项目进行单元测试详解
2019/02/28 NodeJs
JS学习笔记之贪吃蛇小游戏demo实例详解
2019/05/29 Javascript
[01:36:57]【09DOTA2第一视角】小骷髅
2014/04/16 DOTA
python3.7 使用pymssql往sqlserver插入数据的方法
2019/07/08 Python
Python pandas用法最全整理
2019/08/04 Python
Python+Tensorflow+CNN实现车牌识别的示例代码
2019/10/11 Python
python实现遍历文件夹图片并重命名
2020/03/23 Python
解决tensorflow读取本地MNITS_data失败的原因
2020/06/22 Python
如何解决cmd运行python提示不是内部命令
2020/07/01 Python
PyCharm2019 安装和配置教程详解附激活码
2020/07/31 Python
Python非单向递归函数如何返回全部结果
2020/12/18 Python
解决H5的a标签的download属性下载service上的文件出现跨域问题
2019/07/16 HTML / CSS
Toppik顶丰增发纤维官网:解决头发稀疏
2017/12/30 全球购物
李维斯牛仔裤英国官方网站:Levi’s英国
2019/10/10 全球购物
办公室综合文员岗位职责范本
2014/02/13 职场文书
统计岗位职责
2014/02/21 职场文书
建筑工程专业大学生求职信
2014/04/23 职场文书
工人先锋号事迹材料
2014/12/24 职场文书
同学聚会通知书
2015/04/20 职场文书
关于antd tree 和父子组件之间的传值问题(react 总结)
2021/06/02 Javascript
深入理解go slice结构
2021/09/15 Golang
mysql timestamp比较查询遇到的坑及解决
2021/11/27 MySQL
MySQL派生表联表查询实战过程
2022/03/20 MySQL