首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取QDockWidget在当前停靠区域中的位置

问如何获取QDockWidget在当前停靠区域中的位置
EN

Stack Overflow用户
提问于 2016-04-16 03:48:26
回答 1查看 937关注 0票数 1

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

EN

回答 1

Stack Overflow用户

发布于 2016-04-16 05:49:51

您可以通过检查两个停靠点的几何体的值来确定哪个停靠点位于另一个停靠点之上。

如果你有两个码头,

代码语言:javascript
复制
QDockWidget dock1;
QDockWidget dock2;

那么上面的那个将具有较小的y()值(因为屏幕的左上角是(0,0),并且y值随着你移动到底部而增加)

代码语言:javascript
复制
if(dock1.geometry().y() < dock2.geometry().y())
{
     qDebug() << "Dock 1 is above Dock 2";
}

可以使用x()值计算左侧和右侧。如果几何图形是等效的,则停靠位置为选项卡,顶部的停靠位置可由isVisible()的值确定。

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36655685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档