【发布时间】:2015-02-17 10:23:43
【问题描述】:
我正在尝试将我的 PyQt 程序移植到 Mac OS。我是在 Linux 上开发的。
PyQt (4) 安装在两台电脑上,python 3.4。一切似乎都奏效了。该程序在 Linux 计算机上完美运行。我只是将它传输到 mac 计算机,并尝试运行它。它运行,除了一件事:
我有一个菜单项(在菜单栏中),用于程序的设置:
# Action to show a settings window
self.settingsAction = QtGui.QAction('Settings', self)
self.settingsAction.triggered.connect(lambda: Settings(self))
...Some code...
# Menu entry for the settings
self.menubar.addAction(self.settingsAction)
在 Linux 上,“设置”条目完美地显示在菜单栏中,并打开设置窗口。但是,在 Mac OS 上,不显示设置条目。根本不显示。所有其他条目(文件、编辑、视图等)都正确显示,但设置不正确。并且没有引发异常。
我被困在这里,我从来没有使用过 Mac OS,所以我什至不知道从哪里开始调试。
你有什么建议吗?
编辑:
我也试过
# 显示设置窗口的操作 self.settingsAction = QtGui.QAction('Preferences', self) self.settingsAction.triggered.connect(lambda: Settings(self))
...Some code...
# Menu entry for the settings
self.menubar.addAction(self.settingsAction)
【问题讨论】:
-
可能是因为OS X中每个应用的菜单栏都显示在屏幕顶部。
-
如果你输入
cmd+,会发生什么? -
@1Darco1,是的,我知道,但事实并非如此。托马斯,你什么意思?
-
在 Mac Os 中,设置条目显示在
Application name菜单中。 (如果存在此快捷方式将调用设置) -
Mac OS 上的菜单有一些特殊的行为。我不确定您是否可以将这样的 QActions 添加到 Mac OS 菜单栏中;您可能需要为其创建一个实际列表,例如“文件”和“编辑”菜单,并且其中只有一项。此外,正如@Thomas 所提到的,在 Mac OS X 上,首选项/设置菜单位于不同的位置。