如何隐藏具有Qt :: WA_DeleteOnClose标志的QDialog?

时间:2014-04-01 09:10:11

标签: qt windows-applications qdialog

我使用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上。

感谢。

0 个答案:

没有答案