Mac Os X 中类似 Windows 的 Qt4 菜单栏

Posted

技术标签:

【中文标题】Mac Os X 中类似 Windows 的 Qt4 菜单栏【英文标题】:Windows-like Qt4 Menubar in Mac Os X 【发布时间】:2009-11-02 23:45:08 【问题描述】:

我希望我的应用程序看起来与 Windows 版本的应用程序相似:我希望我的程序将文件菜单放在应用程序本身的顶部,而不是在 Os X 中将菜单替换为顶部菜单.

我查看了关于此的 Qt 文档,但我似乎无法创建一个空的 QMenuBar 作为*** QMenuBar。 (我正在使用 QMainWindow 的子类...)

【问题讨论】:

如果你的 Mac 用户表现得像 Windows 应用程序,你会惹恼它。 如果你全屏显示你的应用程序,菜单栏会发生什么? 如您所见,Mac 用户非常坚决地认为他们可能不希望您这样做。或许您可以向我们提供更多关于为什么您想要在窗口内设置菜单栏的信息? +1 让读者明白为什么他们应该遵循 Apple 的 UI 指南。 【参考方案1】:

这是一个坏主意,不会在 Mac 社区赢得您的应用程序粉丝。 Here 是 Apple 人机界面指南。

【讨论】:

【参考方案2】:

他为什么要这样做?多显示器,这就是原因。必须将鼠标从您正在工作的显示器移回主显示器以访问菜单栏,然后​​一直回到您所在的显示器,这让keester感到非常痛苦。我认为如果更多的话会很棒mac 应用程序至少可以选择将其菜单直接放在应用程序窗口中。

【讨论】:

即使在同一个显示器中,如果我在两个窗口之间切换并且需要访问它们的菜单栏,这也是一种奇怪的鼠标舞蹈。 您应该了解更多关于 Mac OS X 平台上的 UI/UX。尤其是为什么人们喜欢支付比 Windows 高得多的费用。 [来自***] Mac 在 80 年代做出了这个选择,并且从那时起就没有改变(而 screen 做了)。这可能与大多数其他非标准的东西(例如 1 键鼠标、键盘布局等)的原因相同……希望先进触觉设备的时代能够让我们摆脱这种诅咒。【参考方案3】:

您创建的第一个菜单栏将成为 mac 主菜单栏。您可以在创建 QApplication 后立即尝试创建一个虚拟对象。您可能希望至少在其中放置一个退出命令。

或者,您可以使用Qt::AA_DontUseNativeMenuBar 致电QApplication::setAttribute。但是,我不知道在这种情况下什么会填充 mac 菜单栏。

【讨论】:

以上是关于Mac Os X 中类似 Windows 的 Qt4 菜单栏的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Qt 的 Mac OS X 工具窗口中删除最大化按钮

在 Mac OS X 上安装多个版本的 Qt

Mac OS X 上的 Qt 库和源代码安装在哪里?

Qt 的编译警告 - 仅限 Mac OS X:<class> 已经是 <class> 的朋友

Mac OS X 上的 Qt 安装问题

Qt Designer 4.8 在 Mac OS X 10.7 上启动时崩溃