2014-10-16 3 views
4

Я пытаюсь найти высоту строки заголовка QDockWidget, чтобы сделать интеллектуальную калибровку настраиваемого макета, но строка заголовка не является отдельным виджетами, она встроена в частный макет виджет док-станции, и нет доступа к нему. Есть ли другой способ найти его высоту?QDockWidget Высота заголовка

ответ

6

Да, вы можете найти высоту заголовка, используя функцию члена pixelMetric элемента QStyle док-станции. Вероятно, вы также захотите запросить маржу, так как она добавляет пространство вокруг строки заголовка, и макет должен знать об этом. Пример:

QDockWidget * myDock = new QDockWidget; 
int titleBarHeight = myDock->style()->pixelMetric(QStyle::PM_TitleBarHeight); 
int titleBarMargin = myDock->style()->pixelMetric(QStyle::PM_DockWidgetTitleMargin); 
-1

Вы всегда можете запустить QObject :: findChild Жека подходящего типа или имя объекта, чтобы найти недоступные детям.

+1

Этот ответ можно улучшить с помощью краткого примера того, как 'QObject :: findChild' будет использоваться для решения проблемы OP. – Floegipoky

+0

это неправильно, потому что, если вы не создали настраиваемую строку заголовка, строка заголовка не является дочерним элементом виджета док-станции. Кроме того, в любом случае не существует класса QTitleBar. –