python - 如何在工具栏中添加操作菜单?
问题描述
我想从工具栏中的项目添加菜单。例如,从以下代码:
import sys
from PyQt5.QtWidgets import QAction, QMainWindow, QApplication
class Menu(QMainWindow):
def __init__(self):
super().__init__()
colors = QAction('Colors', self)
exitAct = QAction('Exit', self)
self.statusBar()
toolbar = self.addToolBar('Exit')
toolbar.addAction(colors)
toolbar.addAction(exitAct)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
menu = Menu()
sys.exit(app.exec_())
我得到:
我想按下“颜色”并获取选项列表(如Qmenu
,但用于工具栏)。我怎样才能做到这一点?
解决方案
如果您希望将 a 添加QMenu
到QToolBar
项目中,则必须添加一个支持它的小部件,例如 a QPushButton
:
import sys
from PyQt5 import QtWidgets
class Menu(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
colorButton = QtWidgets.QPushButton("Colors")
exitAct = QtWidgets.QAction('Exit', self)
toolbar = self.addToolBar("Exit")
toolbar.addWidget(colorButton)
toolbar.addAction(exitAct)
menu = QtWidgets.QMenu()
menu.addAction("red")
menu.addAction("green")
menu.addAction("blue")
colorButton.setMenu(menu)
menu.triggered.connect(lambda action: print(action.text()))
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
menu = Menu()
menu.show()
sys.exit(app.exec_())
推荐阅读
- javascript - 通过 Typescript 支持将一个项目中的捆绑代码包含到另一个项目中
- ios - 收到错误:Xcode 10 上的“Swift 不支持 SDK 'iPhoneSimulator11.2.sdk'”
- c# - 将 PDF 中的外部链接转换为 iTextSharp 中嵌入附件的链接
- c# - 向调用者函数返回异常
- java - RESTFul 服务 - PUT 调用失败并出现 http 411 错误
- c# - 我怎么知道点击了哪张卡片?
- android - 捕获的图像不同于 Preview Camera2 Api
- unit-testing - 如何在用 [ApiController] 装饰的控制器中对模型验证进行单元测试?
- angular - 有条件地设置单选按钮值
- python - 从不同模块导入随机数