我有一个带有 C++ 应用程序的 Qt 4.7.4,它在 Mac 上使用统一的标题和工具栏:
setUnifiedTitleAndToolBarOnMac(true);
在我的应用程序运行的某个时间点,我需要以编程方式知道统一标题和工具栏的高度是多少。
我怎样才能得到它的高度?
至少对于 Qt 4.8.4 和 Mountain Lion,这看起来有点问题:
打开工具栏,QMainWindow::frameGeometry()
报告错误的 y 位置但正确的总窗口大小。在我的测试中,它的height()
减号QMainWindow::geometry()
是标题栏和统一工具栏height()
的高度。要找出单独的工具栏有多高,您可以隐藏它并使用差异。
从事此工作的 Qt 人员似乎遇到了一些问题并且已经停止QMainWindow::setUnifiedTitleAndToolBarOnMac()
:
Qt 4 的统一工具栏实现没有也不会移植到 Qt 5。这意味着调用 QMainWindow::setUnifiedTitleAndToolBarOnMac 对 Qt 5 没有影响。包装 NSToolbar 的替代 API 在 QtMacExtras 中可用。