Как получить высоту унифицированного заголовка 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.

Другие вопросы по тегам