用pyqt4设置mac任务栏菜单然后应用cx_freeze

Posted

技术标签:

【中文标题】用pyqt4设置mac任务栏菜单然后应用cx_freeze【英文标题】:Setting the mac task bar menu with pyqt4 and then applying cx_freeze 【发布时间】:2015-05-22 21:38:58 【问题描述】:

我有一个带有 mac 任务栏菜单的 gui,见下文:

菜单上的前 3 个项目是使用 QtDesigner 创建的,它们的子项目和操作连接良好。我动态创建了额外的“文件”,看看这是否能解决问题。当我使用python3 setup.py build 构建它然后运行生成的可执行文件时,这个菜单看起来完全一样。 当我使用 python3 setup.py bdist_mac 生成一个 mac 应用程序时,这个菜单没有出现,而是我得到:

所以我想知道为什么会发生这种情况,以及我是否缺少任何文件以便让应用程序选择我的菜单。我猜我需要生成 qt_menu.nib,我认为这是存储菜单操作的地方,但我找不到如何从设计器那里生成它。

使用 Python 3.4、最新版本的 cx_freeze、Mac OS X Yosemite 和 PyQt4。

【问题讨论】:

在 qt_menu.nib 中复制可能就足够了;我认为这只是某种存根文件,而不是对特定菜单结构的描述。不过,我忘记了你在哪里找到它以及它应该去哪里。 【参考方案1】:

我不确定为什么这不起作用,或者为什么我的方法修复了它,但我做了两件事来防止菜单混乱: 1. 在加载这个较小的设置窗口之前,我一直在加载另一个主窗口。我现在只在需要时才加载它。

    我正在应用样式表。出于某种原因,每当我应用它时,现在菜单都不起作用。再次,不知道为什么。

【讨论】:

以上是关于用pyqt4设置mac任务栏菜单然后应用cx_freeze的主要内容,如果未能解决你的问题,请参考以下文章

Mac电脑如何让聚焦功能显示在菜单栏?

苹果mac打不出汉字

如何隐藏开始菜单栏

PyQt4 菜单栏 + 工具栏 + 状态栏 + 中心部件 生成一个文本编辑部件示例

原生 Mac 菜单栏的国际化

请问Mac如何不熄屏?