Search code examples
c++qtqdockwidget

How to find the height of a QDockWidget title bar?


I'm trying to find the height of a QDockWidget title bar in order to do some intelligent sizing of a custom layout, but the title bar is not a separate widget, it's built into the private layout of the dock widget, and there is no member to access it. Is there some other way to find its height?


Solution

  • Yes, you can find the title bar's height using the pixelMetric member function of the dock's QStyle element. You'll probably also want to query the margin as well since it adds space around the title bar and the layout will need to be aware of it. Example:

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