• 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按钮右键菜单功能的实现代码

  • 相关阅读:
    DDD领域驱动模型笔记
    SuperMap 是个什么鬼
    基于Hadoop架构的可视化大数据挖掘建模平台
    基于Qt 多线程(继承自QThread篇)
    Vue中的计算属性和侦听器:提升响应式编程的艺术
    Ubuntu系统下挂载共享文件夹的操作
    sql优化常用技巧及理解
    2022年新一批获得能力评估CS认证证书的企业名单
    BabaSSL 8.3.1 发布稳定版本
    llinux的更目录下的文件作用和举例
  • 原文地址:https://blog.csdn.net/huadingjin/article/details/133816858