• python之PyQt按钮右键菜单功能的实现代码


    示例一

    我们可以创建一个简单的窗口,然后在窗口中添加一个自定义按钮。 当鼠标右键点击按钮时,弹出菜单,并在菜单中选中某个选项后弹出消息框。

    完整代码如下所示:

    1. # 导入PyQt库
    2. from PyQt5.QtWidgets import QApplication, QMainWindow, QMenu, QAction
    3. from PyQt5.QtCore import QPoint
    4. # 自定义按钮
    5. class MyButton(QMainWindow):
    6. def __init__(self):
    7. super().__init__()
    8. # 设置按钮
    9. self.btn = QPushButton('自定义按钮',self)
    10. self.btn.resize(100,50)
    11. self.btn.move(50,50)
    12. # 连接右键菜单
    13. self.btn.setContextMenuPolicy(Qt.CustomContextMenu)
    14. self.btn.customContextMenuRequested.connect(self.showContextMenu)
    15. # 创建右键菜单
    16. def showContextMenu(self, pos):
    17. menu = QMenu(self)
    18. menu.addAction(QAction('选项1', self))
    19. menu.addAction(QAction('选项2', self))
    20. # 菜单事件处理
    21. action = menu.exec_(self.btn.mapToGlobal(pos))
    22. if action:
    23. QMessageBox.information(self, "菜单", "你选择了{}".format(action.text()))
    24. if __name__ == '__main__':
    25. # 创建应用程序
    26. app = QApplication(sys.argv)
    27. # 创建主窗口
    28. mainWindow = QMainWindow()
    29. btn = MyButton()
    30. # 设置窗口标题
    31. mainWindow.setWindowTitle('程序主窗口')
    32. # 显示窗口
    33. mainWindow.show()
    34. sys.exit(app.exec_())

    示例二

    我们可以在窗口中添加多个自定义按钮,每个按钮都有自己的右键菜单,并在选中菜单选项后弹出消息框。

    完整代码如下所示:

    1. # 导入PyQt库
    2. from PyQt5.QtWidgets import QApplication, QMainWindow, QMenu, QAction
    3. from PyQt5.QtCore import QPoint
    4. # 自定义按钮
    5. class MyButton(QMainWindow):
    6. def __init__(self, text, x, y):
    7. super().__init__()
    8. # 设置按钮
    9. self.btn = QPushButton(text, self)
    10. self.btn.resize(100,50)
    11. self.btn.move(x,y)
    12. # 连接右键菜单
    13. self.btn.setContextMenuPolicy(Qt.CustomContextMenu)
    14. self.btn.customContextMenuRequested.connect(self.showContextMenu)
    15. # 创建右键菜单
    16. def showContextMenu(self, pos):
    17. menu = QMenu(self)
    18. menu.addAction(QAction('选项1', self))
    19. menu.addAction(QAction('选项2', self))
    20. # 菜单事件处理
    21. action = menu.exec_(self.btn.mapToGlobal(pos))
    22. if action:
    23. QMessageBox.information(self, "菜单", "你选择了{}".format(action.text()))
    24. if __name__ == '__main__':
    25. # 创建应用程序
    26. app = QApplication(sys.argv)
    27. # 创建主窗口
    28. mainWindow = QMainWindow()
    29. # 创建自定义按钮
    30. btn1 = MyButton('按钮1', 50, 50)
    31. btn2 = MyButton('按钮2', 200, 50)
    32. btn3 = MyButton('按钮3', 50, 150)
    33. btn4 = MyButton('按钮4', 200, 150)
    34. # 设置窗口标题
    35. mainWindow.setWindowTitle('程序主窗口')
    36. # 显示窗口
    37. mainWindow.show()
    38. sys.exit(app.exec_())

    以上就是Python之PyQt按钮右键菜单功能的实现代码

  • 相关阅读:
    minio文件服务器-docker docker-compose 搭建部署以及使用大全
    2023年中国人力资源咨询发展历程及市场规模前景分析[图]
    向Github上传文件或项目
    js的数组如何根据元素内容删除
    哪款手机便签软件支持存储录音文件并支持转文字?
    MDK自动生成带校验带SVN版本号的升级文件
    计算机导论第十周课后作业
    如何设计物联网通信协议?
    【Image captioning】ruotianluo/self-critical.pytorch之3—测试脚本test.py
    Hive之数据类型和视图
  • 原文地址:https://blog.csdn.net/huadingjin/article/details/133816858