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实现多线程网页爬虫
Sep 06 Python
Python的Socket编程过程中实现UDP端口复用的实例分享
Mar 19 Python
Python单例模式实例详解
Mar 01 Python
Python中super函数的用法
Nov 17 Python
解决python3中自定义wsgi函数,make_server函数报错的问题
Nov 21 Python
Python面向对象之类和对象实例详解
Dec 10 Python
Python3之不使用第三方变量,实现交换两个变量的值
Jun 26 Python
postman传递当前时间戳实例详解
Sep 14 Python
Python threading模块condition原理及运行流程详解
Oct 05 Python
python Scrapy爬虫框架的使用
Jan 21 Python
Python爬取网站图片并保存的实现示例
Feb 26 Python
用Python写一个简易版弹球游戏
Apr 13 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框架排名
2013/07/04 PHP
PHP统计目录中文件以及目录中目录大小的方法
2016/01/09 PHP
PHP实现的mongoDB数据库操作类完整实例
2018/04/10 PHP
window.location.hash 属性使用说明
2010/03/20 Javascript
基于jquery+thickbox仿校内登录注册框
2010/06/07 Javascript
js中符号转意问题示例探讨
2013/08/19 Javascript
JS实现鼠标经过好友列表中的好友头像时显示资料卡的效果
2014/07/02 Javascript
使用jQuery不判断浏览器高度解决iframe自适应高度问题
2014/12/16 Javascript
jQuery实现的fixedMenu下拉菜单效果代码
2015/08/24 Javascript
JavaScript实现弹出DIV层同时页面背景渐变成半透明效果
2016/03/25 Javascript
JS之相等操作符详解
2016/09/13 Javascript
BootStrap Table后台分页时前台删除最后一页所有数据refresh刷新后无数据问题
2016/12/28 Javascript
webpack入门必知必会
2017/01/16 Javascript
实例分析nodejs模块xml2js解析xml过程中遇到的坑
2017/03/18 NodeJs
node.js操作MongoDB的实例详解
2017/10/11 Javascript
JS实现显示当前日期的实例代码
2018/07/03 Javascript
vue v-model实现自定义样式多选与单选功能
2018/07/05 Javascript
利用layer实现表单完美验证的方法
2019/09/26 Javascript
解决vue-cli@3.xx安装不成功的问题及搭建ts-vue项目
2020/02/09 Javascript
jQuery HTML获取内容和属性操作实例分析
2020/05/20 jQuery
JS图片懒加载技术实现过程解析
2020/07/27 Javascript
[03:49]DOTA2 2015国际邀请赛中国区预选赛第二日现场百态
2015/05/27 DOTA
python抓取最新博客内容并生成Rss
2015/05/17 Python
详解Python中的array数组模块相关使用
2016/07/05 Python
老生常谈Python基础之字符编码
2017/06/14 Python
Queue 实现生产者消费者模型(实例讲解)
2017/11/13 Python
selenium+python实现1688网站验证码图片的截取功能
2018/08/14 Python
python利用pandas将excel文件转换为txt文件的方法
2018/10/23 Python
django框架模板中定义变量(set variable in django template)的方法分析
2019/06/24 Python
Python socket处理client连接过程解析
2020/03/18 Python
澳大利亚著名的纺织品品牌:Canningvale
2020/05/05 全球购物
大学毕业通用个人的求职信
2013/12/08 职场文书
合作协议书模板
2014/10/10 职场文书
2015年幼儿园元旦游艺活动策划书
2014/12/09 职场文书
幼儿园圣诞节活动总结
2015/05/06 职场文书
市场营销计划书
2019/04/24 职场文书