如何告诉QWidget在隐藏之前显示在同一位置?

时间:2018-11-30 12:59:53

标签: qt

如果我创建并显示顶级QWidget,将其拖动到桌面上的新位置,然后依次调用widget->hide()widget::show(),它通常会出现在其他位置从以前的位置开始。

我可以向子类中添加代码以保存和恢复其几何形状,但是我想知道是否有一个In-Qt系统向窗口管理器提示在显示小部件时应该显示的位置。

有没有很好的方法可以做到这一点?

2 个答案:

答案 0 :(得分:0)

如果拖动后得到geometry(), 我认为您可以很快获得after-geometry()。

setGeometry(Widget.geometry())

由于一次又一次调用moveEvent,因此建议您在hideEvent()中执行它。

然后调用Show()方法,窗口小部件就会显示在几何图形上。

答案 1 :(得分:0)

我创建一个“ Qt Widgets Application”并拖动一个QPushButton,然后添加以下代码:

void Widget::on_pushButton_clicked()
{
    hide();
    show();
}

运行程序,将小部件拖动到新位置,然后单击按钮,我发现小部件仍位于同一位置,而不是像您所说的那样