【问题标题】:How can I get the location of a QDockWidget in its current dock area如何获取 QDockWidget 在其当前停靠区域中的位置
【发布时间】:2016-04-16 06:26:13
【问题描述】:

如何获取 QDockWidget 在其当前停靠区的位置?例如,如果我有一个由两个小部件分成两半的停靠区,我如何查询框架以找出哪个在顶部,哪个在底部?当然,用户可以动态地拖放 QDockWidgets。

【问题讨论】:

    标签: c++ qt qdockwidget


    【解决方案1】:

    您可以通过检查两个几何图形的值来确定哪个码头在另一个之上。

    如果你有两个码头,

    QDockWidget dock1;
    QDockWidget dock2;
    

    那么顶部的y() 值会较小(因为屏幕的左上角是 (0,0),并且随着您向底部移动,y 值会增加)

    if(dock1.geometry().y() < dock2.geometry().y())
    {
         qDebug() << "Dock 1 is above Dock 2";
    }
    

    可以使用x() 值计算左右。如果几何形状相同,则停靠栏为选项卡,顶部的停靠栏可由isVisible() 的值确定。

    如果您想根据用户输入重新计算哪个停靠点位于顶部,我建议您连接到QDockWidget::dockLocationChanged 信号,因为每当停靠点更改停靠点位置或在其当前位置内移动时,都会发出它,这应该涵盖所有必要的情况。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-05
      • 1970-01-01
      • 1970-01-01
      • 2012-11-13
      • 2017-12-19
      • 1970-01-01
      相关资源
      最近更新 更多