【问题标题】:How to get the height of Mac unified title and toolbar in Qt/C++Qt/C++中如何获取Mac统一标题和工具栏的高度
【发布时间】:2012-06-21 21:15:00
【问题描述】:

我有一个带有 C++ 应用程序的 Qt 4.7.4,它在 Mac 上使用统一的标题和工具栏: setUnifiedTitleAndToolBarOnMac(true); 在我的应用程序运行时的某个时刻,我需要以编程方式了解统一标题和工具栏的高度。

我怎样才能得到它的高度?

【问题讨论】:

    标签: macos qt toolbar titlebar


    【解决方案1】:

    至少对于 Qt 4.8.4 和 Mountain Lion,这看起来有点问题:

    打开工具栏,QMainWindow::frameGeometry() 报告错误的 y 位置,但正确的 total 窗口大小。在我的测试中,它的height() 减去QMainWindow::geometry()height() 是标题栏统一工具栏的高度。要找出单独的工具栏有多高,您可以将其隐藏并使用差异。

    从事此工作的 Qt 人员似乎遇到了一些问题,并已停止使用 QMainWindow::setUnifiedTitleAndToolBarOnMac()

    来自 Qt 4 的统一工具栏实现没有也不会被移植 到 Qt 5。这意味着调用 QMainWindow::setUnifiedTitleAndToolBarOnMac 有 对 Qt 5 没有影响。包装 NSToolbar 的替代 API 可用于 QtMacExtras。

    【讨论】: