首页 > 其他分享 >pyqt5-QMenu

pyqt5-QMenu

时间:2023-04-16 23:56:59浏览次数:38  
标签:addAction 菜单 QMenu self QAction pyqt5 menu

1、介绍

菜单组件。有两种场景:

  • 窗口的菜单栏设置一个或多个QMenu
  • 其他组件绑定右键菜单,探出一个QMenu

2、类和初始化

class QMenu(QWidget):
    """
    QMenu(parent: QWidget = None)
    QMenu(str, parent: QWidget = None)
    """
    def __init__(self, *__args):
        pass

3、属性

4、方法

(1)addAction

"""
        addAction(self, QAction)
        addAction(self, str) -> QAction
        addAction(self, QIcon, str) -> QAction
        addAction(self, str, PYQT_SLOT, shortcut: Union[QKeySequence, QKeySequence.StandardKey, str, int] = 0) -> QAction
        addAction(self, QIcon, str, PYQT_SLOT, shortcut: Union[QKeySequence, QKeySequence.StandardKey, str, int] = 0) -> QAction
        """
  • 添加动作项
  • 会返回添加的动作项对象,可以直接使用

(2)addMenu

        """
        addMenu(self, QMenu) -> QAction
        addMenu(self, str) -> QMenu
        addMenu(self, QIcon, str) -> QMenu
        """
  • 添加子菜单
  • 会返回添加的菜单对象,可以直接使用

(3)addSeparator

  • 添加分隔符,即一条横线

(4)clear

  • 清除

5、事件

(1)mouseDoubleClickEvent

  • 鼠标双击事件

(2)triggered

triggered(self, QAction) 
  • 触发事件,返回QAction对象,即触发的项。
  • 即点击菜单内部的动作项触发该事件,点击该菜单本身是不会触发的

6、右键菜单示例

from PyQt5.QtCore import Qt

self.ui.plainTextEdit: QPlainTextEdit
self.ui.plainTextEdit.setContextMenuPolicy(Qt.CustomContextMenu)
self.ui.plainTextEdit.customContextMenuRequested.connect(self.plainTextEdit_rightmenu)
  • 设置上下文菜单setContextMenuPolicy,必须在定义右键 菜单之前调用
  • customContextMenuRequested定义右键菜单事件
def plainTextEdit_rightmenu(self, pos):
    print('右键菜单')
    menu = QMenu(self.plainTextEdit)
    menu.addAction(QAction('动作1', menu))
    menu.addAction(QAction('动作2', menu))
    menu.addAction(QAction('动作3', menu))
    menu.triggered.connect(self.menuSlot)
    # 将菜单显示在鼠标位置
    menu.exec_(QCursor.pos())

def menuSlot(self, act):
    print(act.text())

标签:addAction,菜单,QMenu,self,QAction,pyqt5,menu
From: https://www.cnblogs.com/wd404/p/17324482.html

相关文章

  • pyqt5-QMenuBar
    1、介绍菜单栏组件。这里指的是QMainWindow窗口顶部水平的菜单栏。2、类和初始化classQMenuBar(QWidget):"""QMenuBar(parent:QWidget=None)"""def__init__(self,parent=None):pass一般是通过QMainWindow窗口组件调用menuBar方法获取到QMenuBar对......
  • pyqt5-介绍
    1、介绍pyqt是python的一个主流的第三方模块,与Qt融合,用于GUI开发。支持多种常用组件,并且具有很好的默认显示效果QtDesigner支持图形化直接设计ui,大大减轻工作,得到更好的效果使用范围广,网络上有很多的中文文档和问答,方便开发支持pyqthon3语法,目前是pyqt5版本2、比较tkint......
  • pyqt5-QMainWindow
    1、介绍QMainWindow是一个窗口组件,也是最常用的主窗口。importsysfromPyQt5.QtWidgetsimportQMainWindow,QApplicationfromPyQt5.uicimportloadUiclassmy_window:def__init__(self):self.ui=loadUi('ui\\main_window.ui')self.ui:QMa......
  • pyqt5-开发
    1、介绍这里介绍pyqt的一般开发过程。2、主窗口一般,使用QMainWindow组件作为主窗口。然后分为三个部分:标题栏,即窗口名称、图标和关闭按钮等所在行菜单栏和工具栏主界面(1)标题栏可以是直接使用pyqt提供的默认样式,也可以取消默认样式,然后自定义(2)主界面一般不会直接在主界......
  • pyqt5-事件
    1、介绍pyqt提供了事件机制使用户和程序进行交互。2、xxed方法组件的类中声明的类似xxed形式的方法,用于表示事件,使用时将其调用connect方法,指定处理方法。示例:xx.clicked.connect(self.opt)绑定组件对象的鼠标单击事件,如果触发,则调用opt方法3、xxEvent方法组件的类中声......
  • pyqt5-布局
    1、介绍pyqt可以基于designer快速进行布局,所见即所得,不用关心代码。2、绝对布局通过组件的move和update等方法,可以设置组件的左上顶角在父组件的中的绝对位置,从而实现布局。在实际开发中,可以用于窗口的位置设置,但是一般不用于窗口内组件的管理move(x,y)#x表示水平方向,y......
  • pyqt5-QWidget
    1、介绍QWidget是几乎所有pyqt组件的直接或间接父类,其声明的属性和方法很具有代表性。其他组件极大可能是直接使用,所以一般不再阐述。除非少数可能做了个性化覆写。2、类和初始化classQWidget(__PyQt5_QtCore.QObject,__PyQt5_QtGui.QPaintDevice):def__init__(self,p......
  • PyQt5 软件在 macOS HiDPI 模式下出现字体模糊的问题
    ​ Retina屏幕是苹果公司在2010年在 WWDC上发布的一种高密度像素的屏幕。HiDPI是一种渲染技术,它可以让Retina屏幕上的图像更加清晰。HiDPI技术会将图像渲染成两倍于原始分辨率的大小,然后再将其缩小到原始分辨率的大小,这样就可以让图像更加清晰。PyQt5编写的软件在Wi......
  • PyQT5 QFileDialog文件操作程序崩溃处理
    最近用PyQT写个窗体工具,用到QFileDialog处理文件时程序就崩掉了,网上查的降版本,换32位解释器都尝试了都不靠谱,后面无意中看到一段示例代码终于解决了,记录一下,在给掉坑里的小伙伴做个参考。原代码是用qt模板生成的,添加的构造方法:#-*-coding:utf-8-*-fromPyQt5importQtCo......
  • PySide2或PyQt5 运行时提示This application failed to start because no Qt platform
    1.把PySide2或者PyQt5安装在解释器目录下的 \plugins\platforms 目录添加到环境变量Path中。比如,我的环境就是把下面这个路径加到环境变量 Path 中 c:\Python38\Lib\site-packages\PySide2\plugins\platforms 2. 确保环境变量中没有中文......