我正在构建一个PyQt5应用程序,并希望显示一些基本的“关于”信息。我认为qtwidts.QMessagebox.about是一个很好的实现:
class gGuiGlueApplication(GlueApplication):
def __init__(self):
...
menu_about_ggui = self.menuBar().addMenu("&gGui Help")
menu_about_ggui.addAction("About gGui", self.show_about_ggui)
...
def show_about_ggui(self):
"""Displays about gGui Message Box"""
QtWidgets.QMessageBox.about(
self,
"About gGui",
"gPhoton Graphical User Interface (gGui)\n"
"Developed by Duy Nguyen, Scott Fleming\nVersion: "
+ __version__
+ "\n\ngGui is provided under the AURA Software License. "
"Please see the included license for details.",
)
我在Windows和redhat enterpriselinux7上进行了个人测试;一切看起来都正常。“关于”按钮位于右菜单下,作为“关于gGui”,并显示相应的信息:
我的合作者注意到在macOS上,它并不是这样出现的。about选项在我创建的菜单中不可见,而是在“Python”菜单下,错误地标记为“about Python”:
可以理解,这是macOS上信息的自然来源,但对于我们的用户来说,“python”是我们的应用程序并不明显。似乎macOS正在覆盖about选项的位置和命名。我们希望,至少,让它说“aboutggui”,而不是一般的“aboutpython”。根据Qt QMenu.addAction Docs,第一个参数指示选项标题,根据Qt QMessageBox.about Documentation,第一个参数指示“标题”
我们如何才能强制改变macOS中的about文本显示为“about gGui”,甚至有可能强制about信息在相应的菜单中跨平台保持一致
提前谢谢
其他信息:Python 3.7.1、PyQt5 5.13.2、PyQt5 SIP 12.7.0、QtPy 1.9.0
另外,请忽略Windows菜单屏幕截图上的“加载gGui示例数据”选项
解决这一问题的最简单方法似乎是使用以下选项:
这将为您的应用程序提供Windows/Linux中的菜单栏,而不是屏幕顶部的系统菜单栏。单个菜单栏也可以通过setNativeMenuBar方法控制。但是,macOs上的某些用户可能无法接受这种方法
根据Qt for macOs: Menu Bar,另一种解决方案是使用操作的menu-role来控制about菜单项的显示方式:
但要使其正常工作,还需要正确设置应用程序名,以便它替换默认的“Python”。有关该问题的解决方案,请参见以下问题:
相关问题 更多 >
编程相关推荐