Как получить высоту унифицированного заголовка Mac и панели инструментов в Qt/C++
У меня есть приложение Qt 4.7.4 с C++, которое использует унифицированный заголовок и панель инструментов на Mac: setUnifiedTitleAndToolBarOnMac(true);
В какой-то момент, когда мое приложение работает, мне нужно программно узнать, какова высота объединенного заголовка и панели инструментов.
Как я могу получить его высоту?
1 ответ
По крайней мере, в Qt 4.8.4 и Mountain Lion это выглядит немного глючно:
С панелью инструментов, QMainWindow::frameGeometry()
сообщает о неправильной позиции y, но корректном общем размере окна. это height()
минус QMainWindow::geometry()
"s height()
это высота строки заголовка и объединенной панели инструментов в моих тестах. Чтобы узнать, какой высоты одна панель инструментов, вы можете скрыть ее и использовать разницу.
Люди из Qt, работающие над этим, похоже, имеют несколько проблем и прекратили QMainWindow::setUnifiedTitleAndToolBarOnMac()
:
Унифицированная реализация панели инструментов из Qt 4 не была и не будет портирована на Qt 5. Это означает, что вызов QMainWindow::setUnifiedTitleAndToolBarOnMac не влияет на Qt 5. В QtMacExtras доступен API-интерфейс замены, заключающий в себе NSToolbar.