首页 > 其他分享 >pyqt5-右键菜单

pyqt5-右键菜单

时间:2023-04-28 14:37:18浏览次数:35  
标签:触发 菜单 menu self pyqt5 右键 plainTextEdit

1、介绍

pyqt支持两种类型的菜单,窗口的菜单和右键菜单。这里阐述右键菜单的使用。

2、右键触发

from PyQt5.QtCore import Qt

self.ui.plainTextEdit: QPlainTextEdit
self.ui.plainTextEdit.setContextMenuPolicy(Qt.CustomContextMenu)
self.ui.plainTextEdit.customContextMenuRequested.connect(self.plainTextEdit_rightmenu)

def print(self, pos):
    pass
  • 右键触发需要两行代码,不能缺失。注意Qt是从PyQt5.QtCore引入
  • 这行代码的两个方法,都是在QWidget中声明,即几乎所有可见组件都能够使用右键触发
  • 右键触发并不一定要求是做右键菜单,也可以是其它功能的方法
  • 右键触发绑定方法,需要一个参数,用于接收右键点击时鼠标位置

3、右键菜单

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()
  • 实际上,菜单的触发也可以是左键点击、双击、鼠标移动、键盘按下等其他事件。只是相对右键菜单更常见和符合交互习惯。
  • triggered事件是鼠标点击菜单的项触发
  • exec_方法中参数可以是基于QCursor.pos直接获取,也可以是右键触发时传递的参数pos。作用是在鼠标位置弹出菜单,甚至可以直接设置菜单的弹出位置

 

标签:触发,菜单,menu,self,pyqt5,右键,plainTextEdit
From: https://www.cnblogs.com/wd404/p/17362095.html

相关文章

  • pyqt5-QListWidget
    1、介绍list组件,或者说列表组件。2、类和初始化classQListWidget(QListView):快速查询:QListWidget(parent:typing.Optional[QWidget]=None)addItem(self,aitem:QListWidgetItem)addItem(self,label:str)addItems(self,labels:Iterable[str])clear(self)closeP......
  • 关于为element Tree组件实现仿文件夹效果及右键菜单
    <template><divclass="custom-tree-container"@contextmenu.native="handlePaste($event)"><!--<el-tree:data="dataSource"show-checkboxnode-key="id"default-expand-all:expand-on-click-n......
  • Kivy中常用的菜单组件是PopupMenu。它的常用方法及其参数说明
    open(widget):在指定的控件下方打开弹出菜单。widget参数为要显示菜单的控件my_menu=PopupMenu()my_menu.open(my_button)dismiss():关闭弹出菜单。my_menu.dismiss()add_option(text,callback):向菜单中添加一个选项。text参数为选项的文本。callback参数为选......
  • Teamcenter用本地胖客户端启动时,可以看到定制包的插件菜单项,但是用DEBUG启动时,看不到
    1、用本地胖客户端启动时,可以看到定制包的插件菜单项,但是用DEBUG启动时,看不到?原因:是因为DEBUG模式下,是采用JAVA1.8来运行的。但是本机的胖客户端是采用JAVA11来运行的解决办法:换成JAVA11就可以了 ......
  • 直播商城源码,PopupWindow菜单在ListView中显示
    直播商城源码,PopupWindow菜单在ListView中显示  privatePopupWindowmOperaPopup;  privatevoidshowMenuPopup(Viewanchor)  {    if(mOperaPopup==null)    {      ViewpopupView=View.inflate(mContext,R.layout.popup_opera_sub......
  • [ahk]右键菜单打开文件所在文件夹(快捷方式也适用)
    功能:能打开文件所在路径并定位到文件上,能正确解析lnk所指文件的目录。 copypath.ahk 文件如下: #NoTrayIconClipboard=%1% openpath.ahk文件如下:#NoTrayIconClipboard=%1%Run,%"Explorer.exe/select,"Clipboard说明一:剪贴板内容被置为文件路径了。说明二:需要注册到......
  • Vue2和ElementUI编写的无限级菜单路由
    Vue2和ElementUI编写的无限级菜单路由文章转载自:www.javaman.cn<template><div><el-menu:default-active="$route.path"class="el-menu-vertical-demo":collapse="isCollapse"router><templatev-for="item......
  • electron鼠标经过托盘显示自定义菜单
    1.自定义菜单//自定义菜单vartemplateMenu=[{label:"首页",submenu:[{label:"111"},{label:'9089'}]},,{label:"编辑",submenu:[{label:'123'}]}]testmenu=Menu.buil......
  • Sql树形结构(多级菜单)查询设计方案
    MySql树形结构(多级菜单)查询设计方案 背景又很久没更新了,很幸运地新冠引发了严重的上呼吸道感染,大家羊过后注意休息和防护工作中(尤其是传统项目中)经常遇到这种需要,就是树形结构的查询(多级查询),常见的场景有:组织架构(用户部门)查询和多级菜单查询比如,菜单分为三级,一级菜单、......
  • dtcloud中台菜单图标添加方式
    在更新之后的dtcloud框架中,引入了菜单的图标,显示在菜单的左侧。这里给出添加的方法步骤。进入图标库点击个人图标下的“FontIcon”,进入图标库界面,可以在这里选择与模块相符合的图标。图标选择在图标库的界面中,按F12开启开发工具,进行元素检查,获取对应图标的class图例中......