如何在 PyQt5 中单击 Qaction 创建下拉菜单?
How to create a dropdown menu on clicking Qaction in PyQt5?
我正在制作一个应用程序,如果有人点击 Qaction,我想在其中创建一个下拉菜单。
我的代码
self.navtb = QToolBar("Navigation")
self.navtb.setIconSize(QSize(25, 25))
self.navtb.setMovable(False)
self.addToolBar(self.navtb)
option_btn = QAction(QIcon(os.path.join('images', 'options.png')), "Option", self)
self.navtb.addAction(option_btn)
QAction
可以有一个关联的菜单,您可以简单地使用 setMenu() 进行设置。单击+按住会弹出(下拉)此菜单。
现在您只需将按钮设置为在 altering its popup mode 单击时直接转到菜单。请注意,虽然使用 弹出 措辞,但菜单将是工具栏场景中的适当下拉菜单。
在您的示例中,它大致转换为:
option_btn.setMenu(...)
self.navtb.widgetForAction(option_btn).setPopupMode(QToolButton.InstantPopup)
作为参考,这是我在 C++ 代码中的做法:
// initialize compute menu and let button display menu without holding mouse
actionComputeDisplay->setMenu(new QMenu(widget));
auto btn = qobject_cast<QToolButton*>(toolBar->widgetForAction(actionComputeDisplay));
btn->setPopupMode(QToolButton::ToolButtonPopupMode::InstantPopup);
我正在制作一个应用程序,如果有人点击 Qaction,我想在其中创建一个下拉菜单。
我的代码
self.navtb = QToolBar("Navigation")
self.navtb.setIconSize(QSize(25, 25))
self.navtb.setMovable(False)
self.addToolBar(self.navtb)
option_btn = QAction(QIcon(os.path.join('images', 'options.png')), "Option", self)
self.navtb.addAction(option_btn)
QAction
可以有一个关联的菜单,您可以简单地使用 setMenu() 进行设置。单击+按住会弹出(下拉)此菜单。
现在您只需将按钮设置为在 altering its popup mode 单击时直接转到菜单。请注意,虽然使用 弹出 措辞,但菜单将是工具栏场景中的适当下拉菜单。
在您的示例中,它大致转换为:
option_btn.setMenu(...)
self.navtb.widgetForAction(option_btn).setPopupMode(QToolButton.InstantPopup)
作为参考,这是我在 C++ 代码中的做法:
// initialize compute menu and let button display menu without holding mouse
actionComputeDisplay->setMenu(new QMenu(widget));
auto btn = qobject_cast<QToolButton*>(toolBar->widgetForAction(actionComputeDisplay));
btn->setPopupMode(QToolButton::ToolButtonPopupMode::InstantPopup);