当前位置: 首页 > news >正文

教学网站前台模板推广管理

教学网站前台模板,推广管理,怎么才能打开一些网站,上海天华建筑设计有限公司官网在 PySide中,contextMenuEvent() 是 QWidget 类(以及继承自它的所有子类)的一个事件处理方法,主要用于处理上下文菜单事件,也就是当用户在控件上右键点击时触发的事件。 • 通过重新定义contextMenuEvent()来实现自定…

        在 PySide中,contextMenuEvent() 是 QWidget 类(以及继承自它的所有子类)的一个事件处理方法,主要用于处理上下文菜单事件,也就是当用户在控件上右键点击时触发的事件。

• 通过重新定义contextMenuEvent()来实现自定义的鼠标右键菜单

from PySide6.QtGui import QAction
from PySide6.QtWidgets import QApplication, QWidget, QMenu
from PySide6.QtCore import Qtclass MyWidget(QWidget):def __init__(self):super().__init__()# 创建一个菜单self.menu = QMenu(self)# 创建菜单项action1 = QAction("菜单项1", self)action2 = QAction("菜单项2", self)# 将菜单项添加到菜单中self.menu.addAction(action1)self.menu.addAction(action2)# 连接信号和槽,定义点击菜单项后的行为action1.triggered.connect(self.on_action1_triggered)action2.triggered.connect(self.on_action2_triggered)def contextMenuEvent(self, event):# 在鼠标点击的位置显示菜单self.menu.exec(event.globalPos())def on_action1_triggered(self):print("菜单项1被触发")def on_action2_triggered(self):print("菜单项2被触发")# 应用程序执行部分
if __name__ == "__main__":app = QApplication([])widget = MyWidget()widget.show()app.exec()

 • 将其定义在子部件内:

from PySide6.QtGui import QAction
from PySide6.QtWidgets import QApplication, QWidget, QMenu, QPushButtonclass MyWidget(QWidget):def __init__(self):super().__init__()self.setupUi()def setupUi(self):self.button = MyButton(self)class MyButton(QPushButton):def __init__(self, parent=None):super().__init__(parent)self.setText("右键点击我")# 创建一个菜单self.menu = QMenu(self)# 创建菜单项action1 = QAction("菜单项1", self)action2 = QAction("菜单项2", self)# 将菜单项添加到菜单中self.menu.addAction(action1)self.menu.addAction(action2)# 连接信号和槽,定义点击菜单项后的行为action1.triggered.connect(self.on_action1_triggered)action2.triggered.connect(self.on_action2_triggered)def contextMenuEvent(self, event):# 在鼠标点击的位置显示菜单self.menu.exec(event.globalPos())def on_action1_triggered(self):print("菜单项1被触发")def on_action2_triggered(self):print("菜单项2被触发")# 应用程序执行部分
if __name__ == "__main__":app = QApplication([])widget = MyWidget()widget.show()app.exec()

上述代码,只有在按钮上有鼠标右键菜单。 

获取系统默认的右键菜单并添加新的菜单项 

import sys
from PySide6.QtGui import QAction
from PySide6.QtWidgets import QApplication, QLineEdit, QMenuclass MyLineEdit(QLineEdit):def __init__(self, parent=None):super().__init__(parent)self.setText("右键点击我")self.menu = QMenu(self)   # 创建一个菜单self.addMenus()         # 添加菜单的菜单项def addMenus(self):# 获取系统默认的上下文菜单动作default_actions = self.createStandardContextMenu().actions()# 将默认动作添加到新菜单中for action in default_actions:print(action.text())self.menu.addAction(action)# 将新的菜单项添加到新菜单中self.action1 = QAction("菜单项1", self)self.action2 = QAction("菜单项2", self)self.menu.addSeparator()  # 创建分割线# 添加自定义菜单项self.menu.addAction(self.action1)self.menu.addAction(self.action2)# 连接信号和槽函数self.action1.triggered.connect(self.on_action1_triggered)self.action2.triggered.connect(self.on_action2_triggered)# 重写上下文菜单事件def contextMenuEvent(self, event):# 显示菜单self.menu.exec(event.globalPos())def on_action1_triggered(self):print("菜单项1被点击")def on_action2_triggered(self):print("菜单项2被点击")if __name__ == "__main__":app = QApplication(sys.argv)line_edit = MyLineEdit()line_edit.show()sys.exit(app.exec())

        上面的代码,读取了系统内置的默认右键菜单,并增加了两个自定义的菜单项,构成了一个新的菜单。重写了contextMenuEvent(),使其显示新的菜单。

  为新菜单设置快捷方式

import sys
from PySide6.QtGui import QAction
from PySide6.QtWidgets import QApplication, QLineEdit, QMenuclass MyLineEdit(QLineEdit):def __init__(self, parent=None):super().__init__(parent)self.setText("右键点击我")self.menu = QMenu(self)   # 创建一个菜单self.addMenus()         # 添加菜单的菜单项def addMenus(self):# 获取系统默认的上下文菜单动作default_actions = self.createStandardContextMenu().actions()# 将默认动作添加到新菜单中for action in default_actions:self.menu.addAction(action)# 将新的菜单项添加到新菜单中self.action1 = QAction("菜单项1", self)   # 创建菜单项self.action1.setShortcut("Ctrl+B")       # 设置快捷键self.action2 = QAction("菜单项2", self)self.menu.addSeparator()  # 创建分割线# 添加自定义菜单项self.addAction(self.action1)             # 将菜单项添加到部件的主体中,用以生效快捷方式self.menu.addAction(self.action1)  # 将菜单项添加到菜单中self.menu.addAction(self.action2)# 连接信号和槽函数self.action1.triggered.connect(self.on_action1_triggered)self.action2.triggered.connect(self.on_action2_triggered)# 重写上下文菜单事件def contextMenuEvent(self, event):# 显示菜单self.menu.exec(event.globalPos())def on_action1_triggered(self):print("菜单项1被点击")def on_action2_triggered(self):print("菜单项2被点击")if __name__ == "__main__":app = QApplication(sys.argv)line_edit = MyLineEdit()line_edit.show()sys.exit(app.exec())
    这里注意,只有执行了:self.addAction(self.action1),将菜单项添加到部件的主体中,才能生效快捷方式。而self.menu.addAction(self.action1)只是将菜单项添加到菜单中,并未在部件中注册菜单项。

除了重新定义contextMenuEvent(),还有另一种更为灵活的方法:

• 使用策略设置setContextMenuPolicy()的方法来定义菜单:

PyQT(PySide)的上下文菜单策略设置setContextMenuPolicy()-CSDN博客

http://www.15wanjia.com/news/16914.html

相关文章:

  • wordpress 固定链接 无法访问厦门网站优化公司
  • wordpress静态网站博客郑州网站建设公司排行榜
  • 佛山网站建设有限公司外包公司被辞退有补偿吗
  • 南京中建乡旅建设投资有限公司网站seo优化诊断工具
  • 温州高端网站建设公司市场调研报告ppt
  • 浩森宇特北京网站建设营销网课
  • 专门做电商的招聘网站seo教程seo优化
  • 公司注册费用多少百度seo营销公司
  • php网站开发pdf优化大师官网入口
  • 在海口注册公司需要什么条件长沙seo工作室
  • 整个网站的关键词苏州百度推广公司地址
  • 网站公告弹窗源码网络营销的四大基础理论
  • 手机微网站开发来宾网站seo
  • 西安网站价格网上怎么注册公司免费的
  • 网站开发社会可行性分析怎么写杭州网站
  • 做IT的会做网站吗seo关键词优化技术
  • 15年做哪些网站致富郑州seo优化公司
  • html5开发网站做网页多少钱一个页面
  • 青岛高品质网站建设太原seo优化公司
  • 网站是不是要用代码做廊坊百度关键词排名平台
  • 做网站找我图片seo技巧是什么意思
  • 微信网站怎么制作信息流优化师是做什么的
  • 网站 黄色电脑学校培训
  • 南京网站设计建设推荐软文300字案例
  • 东营网站建设收益高上海有名网站建站开发公司
  • 做网站后台要学什么想做电商怎么入手
  • 温州网站建设排名传统营销与网络营销的整合方法
  • wordpress删除仪表盘seo技术培训沈阳
  • 凡科建设网站入门版好不百度提问登陆入口
  • 网站建设销售前景免费关键词挖掘工具