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中的tuple元组详细介绍
Feb 02 Python
Python的Django框架中的数据过滤功能
Jul 17 Python
浅谈Python中列表生成式和生成器的区别
Aug 03 Python
python开发之字符串string操作方法实例详解
Nov 12 Python
Python中三元表达式的几种写法介绍
Mar 04 Python
Python 通过打码平台实现验证码的实现
May 13 Python
pyqt5 实现工具栏文字图片同时显示
Jun 13 Python
详解用pyecharts Geo实现动态数据热力图城市找不到问题解决
Jun 26 Python
Python图像处理PIL各模块详细介绍(推荐)
Jul 17 Python
postman传递当前时间戳实例详解
Sep 14 Python
Django继承自带user表并重写的例子
Nov 18 Python
Python爬虫解析网页的4种方式实例及原理解析
Dec 30 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
在windows平台上构建自己的PHP实现方法(仅适用于php5.2)
2013/07/05 PHP
php实现设计模式中的单例模式详解
2014/10/11 PHP
PHP截取指定图片大小的方法
2014/12/10 PHP
js Array对象的扩展函数代码
2013/04/24 Javascript
js检查页面上有无重复id的实现代码
2013/07/17 Javascript
基于jquery的文章中所有图片width大小批量设置方法
2013/08/01 Javascript
jquery图片放大功能简单实现
2013/08/01 Javascript
Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
2013/11/14 Javascript
用js的document.write输出的广告无阻塞加载的方法
2014/06/05 Javascript
JavaScript隐式类型转换
2016/03/15 Javascript
jquery中绑定事件的异同
2017/02/28 Javascript
jQuery中的deferred使用方法
2017/03/27 jQuery
jquery 键盘事件的使用方法详解
2017/09/13 jQuery
基于jquery实现五星好评
2017/11/18 jQuery
解决bootstrap-select 动态加载数据不显示的问题
2018/08/10 Javascript
JavaScript实现多个物体同时运动
2020/03/12 Javascript
vue实现多个echarts根据屏幕大小变化而变化实例
2020/07/19 Javascript
python的三目运算符和not in运算符使用示例
2014/03/03 Python
利用python批量检查网站的可用性
2016/09/09 Python
python 按照固定长度分割字符串的方法小结
2018/04/30 Python
python如何查看微信消息撤回
2018/11/27 Python
使用Python将Mysql的查询数据导出到文件的方法
2019/02/25 Python
python实现查找所有程序的安装信息
2020/02/18 Python
python 成功引入包但无法正常调用的解决
2020/03/09 Python
python调用win32接口进行截图的示例
2020/11/11 Python
CSS3使用transition属性实现过渡效果
2018/04/18 HTML / CSS
利用HTML5绘制点线面组成的3D图形的示例
2015/05/12 HTML / CSS
美国滑雪和滑雪板商店:Buckman
2018/03/03 全球购物
MAC彩妆英国官网:M·A·C UK
2018/05/30 全球购物
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
2014/09/09 面试题
Java程序开发中如何应用线程
2016/03/03 面试题
查环查孕证明
2014/01/10 职场文书
保护环境倡议书范文
2014/05/13 职场文书
学习“七一”讲话精神体会
2014/07/08 职场文书
2014年工商所工作总结
2014/12/09 职场文书
vue+iview实现手机号分段输入框
2022/03/25 Vue.js