2013-09-28 37 views
0

我有一個主要的寡婦。我將它移動到底部邊緣或角落。然後點擊它中的某個按鈕打開一個對話框。該對話框位於主窗口的中心,因爲我將主窗口設置爲其父窗口。但是,由於主窗口位於邊緣或角落,因此對話框不會顯示在屏幕上。如何使其顯示在屏幕上?如何處理顯示在屏幕外的QDialog?

回答

2

可以直到它變成屏幕上的負座標move它:

dialog.move(-dialog.width(), -dialog.height()) 

所以它的右下角邊緣這應該將它與主窗口的左上邊緣對齊。

或者你可以讓對話框父母雙亡的孤兒,並相對於屏幕移動它,而不是座標:

dialog.setParent(None) 
dialog.move(400, 300) 
+0

你知道如何檢查它是否是出屏? – user1899020

+1

@ user1899020:http://qt-project.org/doc/qt-5.1/qtwidgets/qwidget.html#visible-prop但是您可以隨時詢問位置並與屏幕座標進行比較,前者無法解決。 – lpapp

+0

@ user1899020:這可能應該是另一個問題。但這取決於小部件是否有父母。 – MadeOfAir