我使用QDialog
标记创建了Qt::WA_DeleteOnClose
。当特定事件发生时,我需要隐藏对话框并在稍后的另一个特定事件中恢复它。如果我调用QWidget::hide()
,则删除对话框对象(由于WA_DeleteOnClose
),这对我不起作用。
不幸的是,出于某些技术原因,我无法在运行时取消/重置Qt::WA_DeleteOnClose
。
问题是:如何有效隐藏QDialog
以使其不可见但仍然存在?我试过了
QDialog* pDlg = ...;
QSizePolicy newSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
pDlg->setSizePolicy(newSizePolicy);
pDlg->setMinimumSize(0,0);
pDlg->resize(0,0);
但这不起作用。可能是我可以将对话框移到桌面之外吗?还是......
如果重要的话,我完全在Windows上。
感谢。