故事背景:最近需要在父窗體修改按鈕上彈出二次確認框,之前要么使用 QDesktopWidget,要么使用QCursor,來設置彈窗位置,但是這兩種方式不是很理想,就是想彈到相對父窗體的位置,開始咱們的探險之路。。。
解決方案:因為之前了解過坐標系相關的概念,就從這個方向出發
1.獲取父窗口相對於屏幕的坐標,即絕對坐標
2.計算子窗口的坐標
3.移動窗口
代碼有話說:
QPoint globalPos = this->mapToGlobal(QPoint(0, 0)); pDlg->move(globalPos.x() + 200, globalPos.y() + 100);
雖然只是一個小小的功能,還是需要能幫助到更多的人,提供一個小小的思路,大家可以進行擴展!