如何获取QDockWidget在其当前停靠区域中的位置?例如,如果我有一个包含两个小部件的停靠区域,我如何查询框架来找出哪个在顶部,哪个在底部?当然,用户可以动态地拖放QDockWidgets。
发布于 2016-04-16 05:49:51
您可以通过检查两个停靠点的几何体的值来确定哪个停靠点位于另一个停靠点之上。
如果你有两个码头,
QDockWidget dock1;
QDockWidget dock2;那么上面的那个将具有较小的y()值(因为屏幕的左上角是(0,0),并且y值随着你移动到底部而增加)
if(dock1.geometry().y() < dock2.geometry().y())
{
qDebug() << "Dock 1 is above Dock 2";
}可以使用x()值计算左侧和右侧。如果几何图形是等效的,则停靠位置为选项卡,顶部的停靠位置可由isVisible()的值确定。
如果您想重新计算相对于用户输入哪个dock在顶部,我建议连接到QDockWidget::dockLocationChanged信号,因为每当dock更改dock位置或在其当前位置内移动时,都会发出该信号,这应该涵盖了所有必要的情况。
https://stackoverflow.com/questions/36655685
复制相似问题