【发布时间】:2019-02-20 13:36:33
【问题描述】:
在我正在处理的项目中,我需要一个菜单栏(文件、编辑、视图等)与之交互。我在 Mac 上工作,所以我希望能够使用 OS X 中已经提供的菜单栏,但是从我看到的所有文档和已经回答的问题来看,看起来只有 QMainWindow 才正确支持,a Qt Widgets 的一部分,而不是 Qt Quick。 Qt Quick 中的 Mac 是否支持本机菜单栏,还是我必须编写一些特定于平台的代码来实现?提前感谢您的帮助!
【问题讨论】:
-
事实上,在 OS X 上使用非本地菜单需要付出额外的努力——而且菜单根本不需要 QMainWindow。简而言之:OS X 上的菜单是原生的,除非你强迫它们不原生。
-
@KubaOber 我知道这一点,但是如何在 Qt Quick 中创建一个菜单栏,该菜单栏将上升到实际的 OS X 菜单栏,而不仅仅是创建一个沿我的应用程序顶部?我还没有找到任何方法,我想知道它是否受支持。
-
他们可能应该默认这样做......我很惊讶他们不这样做。
-
你看过doc.qt.io/qt-5.11/qml-qt-labs-platform-menubar.html。唯一的坏处是 qt labs 中的所有内容可能无法在未来版本的 qt 中工作,然后它真的会咬人。
-
@mlvljr 我已经做到了。尽管我对一个实现细节感到非常沮丧,该实现细节是为了没有窗口的系统的利益而改变的,这使得弹出菜单(例如 ComboBox 生成的那些弹出菜单)被周围的 Qt Quick 小部件剪切。这意味着我被限制在我的 QML 小部件中不添加任何内容,并且在我需要向用户提供选择列表时寻找替代品。