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列表操作实例
Jan 14 Python
Python分支结构(switch)操作简介
Jan 17 Python
Tensorflow之构建自己的图片数据集TFrecords的方法
Feb 07 Python
Python针对给定列表中元素进行翻转操作的方法分析
Apr 27 Python
python+selenium实现QQ邮箱自动发送功能
Jan 23 Python
使用pyinstaller打包PyQt4程序遇到的问题及解决方法
Jun 24 Python
Python实现一个数组除以一个数的例子
Jul 20 Python
Django中使用session保持用户登陆连接的例子
Aug 06 Python
基于python调用psutil模块过程解析
Dec 20 Python
python实现的分层随机抽样案例
Feb 25 Python
Python环境配置实现pip加速过程解析
Nov 27 Python
Python实现批量将文件复制到新的目录中再修改名称
Apr 12 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
实现了一个PHP5的getter/setter基类的代码
2007/02/25 PHP
创建数据库php代码 用PHP写出自己的BLOG系统
2010/04/12 PHP
php 定义404页面的实现代码
2012/11/19 PHP
Windows下Apache + PHP SESSION丢失的解决过程全纪录
2015/04/07 PHP
PHP实现长文章分页实例代码(附源码)
2016/02/03 PHP
thinkPHP中配置的读取与C方法详解
2016/12/05 PHP
设定php简写功能的方法
2019/11/28 PHP
关于jquery.validate1.9.0前台验证的使用介绍
2013/04/26 Javascript
js 用CreateElement动态创建标签示例
2013/11/20 Javascript
input输入框鼠标焦点提示信息
2015/03/17 Javascript
JQuery使用index方法获取Jquery对象数组下标的方法
2015/05/18 Javascript
javascript同步服务器时间和同步倒计时小技巧
2015/09/24 Javascript
js拖拽的原型声明和用法总结
2016/04/04 Javascript
jQuery Validate插件自定义验证规则的方法
2016/12/27 Javascript
canvas 实现中国象棋
2017/02/17 Javascript
jQuery UI 实例讲解 - 日期选择器(Datepicker)
2017/09/18 jQuery
echarts饼图扇区添加点击事件的实例
2017/10/16 Javascript
详解js正则表达式验证时间格式xxxx-xx-xx形式
2018/02/09 Javascript
React组件重构之嵌套+继承及高阶组件详解
2018/07/19 Javascript
详解vscode中vue代码颜色插件
2018/10/11 Javascript
React Hooks的深入理解与使用
2018/11/12 Javascript
详解JavaScript 新语法之Class 的私有属性与私有方法
2019/04/23 Javascript
js遍历详解(forEach, map, for, for...in, for...of)
2019/08/28 Javascript
vue滚动插件better-scroll使用详解
2019/10/18 Javascript
python复制文件到指定目录的实例
2018/04/27 Python
Python堆排序原理与实现方法详解
2018/05/11 Python
django+xadmin+djcelery实现后台管理定时任务
2018/08/14 Python
Python for循环及基础用法详解
2019/11/08 Python
Marlies Dekkers内衣荷兰官方网店:荷兰奢侈内衣品牌
2020/03/27 全球购物
经济学博士求职自荐信范文
2013/11/23 职场文书
幼儿园大班评语大全
2014/04/17 职场文书
机电一体化毕业生自荐信
2014/06/19 职场文书
计算机实训报告范文
2014/11/05 职场文书
社区低保工作总结2015
2015/07/23 职场文书
导游词之西安大清真寺
2019/12/17 职场文书
python双向链表实例详解
2022/05/25 Python