如果我创建并显示顶级QWidget
,将其拖动到桌面上的新位置,然后依次调用widget->hide()
和widget::show()
,它通常会出现在其他位置从以前的位置开始。
我可以向子类中添加代码以保存和恢复其几何形状,但是我想知道是否有一个In-Qt系统向窗口管理器提示在显示小部件时应该显示的位置。
有没有很好的方法可以做到这一点?
答案 0 :(得分:0)
如果拖动后得到geometry()
,
我认为您可以很快获得after-geometry()。
setGeometry(Widget.geometry())
由于一次又一次调用moveEvent
,因此建议您在hideEvent()
中执行它。
然后调用Show()方法,窗口小部件就会显示在几何图形上。
答案 1 :(得分:0)
我创建一个“ Qt Widgets Application”并拖动一个QPushButton,然后添加以下代码:
void Widget::on_pushButton_clicked()
{
hide();
show();
}
运行程序,将小部件拖动到新位置,然后单击按钮,我发现小部件仍位于同一位置,而不是像您所说的那样