我有一个QDialog,我有一个可检查的按钮,可以打开/关闭(隐藏/显示)另一个窗口(该窗口也是一个QDialog)。
我的问题是我希望在隐藏和打开后保持第二个QDialog的位置(例如:我将QDialog移动到屏幕的一角,当我隐藏然后显示它时,QDialog需要在同一个角落)。
此时它似乎在初始位置恢复。我在similar找到了类似的文章,但在我的情况下,我有两个独立的窗口,我可以在屏幕上移动第二个QDialog。有没有人遇到这个问题?
答案 0 :(得分:4)
AFAIK无需任何代码即可运行:显示/隐藏小部件时位置不会改变。
无论如何,您可以通过geometry存储QDialog
的位置:
// save geometry
QRect geometry = my_dialog->geometry();
my_dialog->hide();
// restore geometry
my_dialog->show();
my_dialog->setGeometry(geometry);
请注意,几何图形是相对于父图形的:我假设您的QDialog
是无模式的。