我有一个QDialog,其中有一个可检查的按钮,可以打开/关闭(隐藏/显示)另一个窗口(该窗口也是QDialog)。

我的问题是我希望在隐藏并打开第二个QDialog时保持其位置(示例:我将QDialog移到屏幕的一个角落,当我隐藏然后显示它时,QDialog必须位于同一角)。

此时,它似乎已恢复到初始位置。我在similar上找到了类似的文章,但就我而言,我有两个单独的窗口,可以在屏幕上移动第二个QDialog。有人遇到这个问题吗?

最佳答案

AFAIK无需任何代码即可工作:显示/隐藏小部件时位置不变。

无论如何,您可以通过geometry来存储QDialog的位置:

// save geometry

QRect geometry = my_dialog->geometry();
my_dialog->hide();

// restore geometry

my_dialog->show();
my_dialog->setGeometry(geometry);

请注意,几何图形是相对于父几何图形的:我在这里假设您的QDialog是无模的。

关于c++ - 如何在隐藏/显示上保持QDialog的位置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40487851/

10-12 04:24