QT:设置子窗口显示在父窗口的位置(绝对坐标)

  • A+
所属分类:linux技术
摘要

故事背景: 最近需要在父窗体修改按钮上弹出二次确认框,之前要么使用 QDesktopWidget,要么使用QCursor,来设置弹窗位置,但是这两种方式不是很理想,就是想弹到相对父窗体的位置,开始咱们的探险之路。。。

故事背景:最近需要在父窗体修改按钮上弹出二次确认框,之前要么使用 QDesktopWidget,要么使用QCursor,来设置弹窗位置,但是这两种方式不是很理想,就是想弹到相对父窗体的位置,开始咱们的探险之路。。。

解决方案:因为之前了解过坐标系相关的概念,就从这个方向出发

     1.获取父窗口相对于屏幕的坐标,即绝对坐标
     2.计算子窗口的坐标
     3.移动窗口

代码有话说:

        QPoint globalPos = this->mapToGlobal(QPoint(0, 0));         pDlg->move(globalPos.x() + 200, globalPos.y() + 100);

 

 

虽然只是一个小小的功能,还是需要能帮助到更多的人,提供一个小小的思路,大家可以进行扩展!