- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我一直在使用 PyQt5 开发 GUI,并希望包含一个菜单栏。但是,当我编写此功能的代码时,我的菜单不会出现。弄清楚我对如何在 PyQt5 中实现菜单栏的理解是错误的,我在网上查找了一个预先存在的示例。通过一些调整,我开发了以下测试用例:
import sys
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QApplication, QMainWindow, QMenuBar, QAction, qApp
class Example(QMainWindow):
def __init__(self):
super().__init__()
exitAction = QAction(QIcon('exit.png'), '&Exit', self)
exitAction.triggered.connect(qApp.quit)
menubar = self.menuBar()
fileMenu = menubar.addMenu('&Testmenu')
fileMenu.addAction(exitAction)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
但是,当我运行它时,找不到 Testmenu
。
在使用 pyuic5 将 .ui 文件转换为可导入的 .py 之前,我还尝试在 QTCreator 中创建菜单栏(以及我的 GUI 布局的其余部分)。我认为这会消除我这边的一些编程错误,但菜单栏仍然不会显示。有什么想法吗?
编辑:
我在 Jupyter 笔记本 4.1 版中使用 Python 3.5 (Anaconda 4.1) 运行此代码。我还使用运行 os 10.1l、PyQt 5.7 和 Qt 5.7.0 版的 Macbook。
我已经意识到,如果我单击应用程序窗口然后单击返回窗口,菜单栏将变得响应 - 有效地取消焦点和聚焦应用程序。有了这些信息,我意识到我不是第一个注意到这个问题的人(参见 https://github.com/robotology/yarp/issues/457 )。不幸的是,我仍然不确定如何解决这个问题。
最佳答案
这不是 Qt 和 PyQt5 的错误。
我认为您的代码是 zetcode pyqt5 menubar tutorial .我在 Mac OS 上遇到了完全相同的问题。
第一个解决方案是一个技巧。使用 '&Exit'
而不是 '&Exit'
。在 '&Exit'
的开头插入一个空格,如下所示:
...
# exitAction = QAction(QIcon('exit.png'), '&Exit', self) # Not shown
exitAction = QAction(QIcon('exit.png'), ' &Exit', self)
...
macOS系统范围的菜单栏保留了"Exit"
、"Quit"
等关键词。同理,yurisnm's example code在 Mac OS 上仅显示除 "Quit"
之外的菜单项。实际上“退出”有TextHeuristicRole ,因此会覆盖“应用程序”菜单中的“退出”行为。当您在“Python”菜单中单击“Quit python”时,它不会退出,只会打印“quit triggered”。
如果您必须在其他菜单中使用该名称(例如文件、编辑),您需要像上面那样更改操作名称或使用 QAction::setMenuRole(...)
如下:
...
exitAction = QAction(QIcon('exit.png'), '&Exit', self)
print(exitAction.menuRole()) # It prints "1". QAction::TextHeuristicRole
exitAction.setMenuRole(QAction.NoRole)
...
请阅读以下内容,对您有所帮助。
关于python - PyQt5 中缺少 menuBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39574105/
所以:我这里有一段代码,我用它来向我的应用程序添加菜单。 Stage window; private void buildWindow() { window = new Stage();
简单的问题 - 我正在编辑一个基于 Java 的 MMORPG 游戏,想要向游戏框架添加一个菜单栏。我就这样做了,但是菜单栏似乎切入了游戏并屏蔽了一些内容,使其隐藏在菜单栏后面。这里有一个示例图片:
如何更改 QML 菜单项的文本颜色 MenuBar ? import QtQuick 2.4 import QtQuick.Controls 1.3 import QtQuick.Window 2.2
我的菜单项有问题 :( 想包括一张照片,但不允许 所以没有它的问题是愚蠢的 我似乎无法更改下拉菜单的宽度, 我在我的脑海中包含了一个样式,并在其中包含了一个宽度属性 每个菜单项,但它们没有任何区别:
我已经成功创建了一个应用程序,但我不希望它位于 Dock 上,直到用户单击菜单栏项目,然后它启动该应用程序,并且如果用户退出主应用程序,菜单栏项目仍然保留. 最佳答案 经过几天的研究,我终于想出了如何
我们可以使用javascript获取窗口的“menubar”属性值 最佳答案 一些浏览器(Safari、Chrome、FF)提供了一个对象window.menubar,它有一个属性“visible”,
我编写了一些代码,旨在创建一个表格并在该表格中显示剪贴板数据(将从 excel 复制)。 所以我在菜单栏“从 Excel 导入”中有一个菜单项,单击它时将获取剪贴板中的任何 excel 数据并在下面的
这是给我带来问题的一段代码: void CMainFrame::DisplayActionsPopupMenu() { // get "Actions" menu wxMenuBar*
我一直在使用 PyQt5 开发 GUI,并希望包含一个菜单栏。但是,当我编写此功能的代码时,我的菜单不会出现。弄清楚我对如何在 PyQt5 中实现菜单栏的理解是错误的,我在网上查找了一个预先存在的示例
我是 JavaFX 的新手 但是我写了这段代码,我不知道如何在我的所有场景中显示菜单栏。此外,我想在我的 HelloApplication 中使用布局创建/填充我的场景(但这是另一个问题)。 我有一个
我不知道为什么,但我看到菜单栏上的 itemclick 事件不会触发,除非您单击一个子项目。 什么是处理点击位于顶层且没有子菜单项的菜单项的干净方法。 例如,我想在单击 MenuItem B 时触发一
我有一个 BorderPane,在上面放置了一个 MenuBar。在 BorderPane 的中心,我根据所选的 MenuItem 显示不同的 AnchorPanes。到目前为止,一切都很好。 现在,
我有一个代码,单击网页上的按钮,会弹出一个菜单栏。我想从出现的选项中选择一个menuitem,然后单击该menuitem(如果可能);然而,我遇到了障碍。 这是迄今为止代码的相关部分: from se
在我的舞台上,我像往常一样为程序在顶部插入了一个菜单栏。我想在舞台的另一个上下文中给 ALT 键(连同箭头键)一些逻辑。但是每次我按 ALT 和箭头时,我也会无意中浏览菜单栏的菜单。 我想避免这种情况
我的程序有一个菜单栏,其中一个菜单称为"file"。文件菜单中有 4 个选项:“新建”、“暂停”、“取消暂停”和“退出”。所有五个都指定了助记符,但只有文件的助记符按照我希望的方式工作。 其他四个都有
我知道这是在 CSS(以及 SCSS)中完成的,但我正在努力解决如何设置样式以使 MenuBar 看起来像文本的问题。我对 MenuItems 没有意见,我只希望 MenuBar 本身看起来像链接。一
我正在使用 PrimeNG 8.1.1,我想将其中一项推到右侧(注销和配置文件的子菜单)。 有什么建议吗? this._menuItems = [ {
我的网站有点问题。我从未使用过 Asp.net,所以如果可以的话,请直接粘贴正确的代码。我在我的母版页中插入了带有此代码的菜单栏 Home
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
我正在尝试根据场景背景为我的菜单栏设置不同的样式。 我所有的 Controller 都有一个面板来加载我的菜单栏。 HomePage.java public class HomePage implem
我是一名优秀的程序员,十分优秀!