【问题标题】:How to find the height of a QDockWidget title bar?如何找到 QDockWidget 标题栏的高度?
【发布时间】:2014-12-12 06:25:52
【问题描述】:

我正在尝试查找 QDockWidget 标题栏的高度,以便对自定义布局进行一些智能调整,但标题栏不是单独的小部件,它内置在停靠小部件的私有布局中,并且没有成员可以访问它。有没有其他方法可以找到它的高度?

【问题讨论】:

    标签: c++ qt qdockwidget


    【解决方案1】:

    是的,您可以使用停靠栏的QStyle 元素的pixelMetric 成员函数找到标题栏的高度。您可能还想查询边距,因为它会在标题栏周围增加空间,并且布局需要注意它。示例:

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

    【讨论】:

      【解决方案2】:

      您始终可以使用合适的类型或对象名称运行 QObject::findChild 以查找其他无法访问的子项。

      【讨论】:

      • 这个答案可以通过一个简短的例子来改进,说明如何使用QObject::findChild 来解决 OP 的问题。
      • 这是错误的,因为除非您创建了自定义标题栏,否则标题栏不是停靠小部件的子项。此外,无论如何都没有 QTitleBar 类这样的东西。
      猜你喜欢
      • 2017-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-16
      • 2017-11-19
      • 2011-06-06
      • 2018-07-30
      • 1970-01-01
      相关资源
      最近更新 更多