弹出模态对话框
1弹出Dialog以及Dialog子类
{
//指不指定this都可以。没有具体分析this和非this有什么区别
HDialog hd(this);hd.exec();
}
2弹出widget
这里new的widget如果指定this。只有控件被显示。背景是透明的。如果有人知道为啥。帮忙说一下
HistoryWindow* pHistory=new HistoryWindow();
pHistory->setAttribute(Qt::WA_DeleteOnClose);
pHistory->setWindowModality(Qt::ApplicationModal);
pHistory->show();
弹出非模态
1弹出Dialog以及Dialog子类
{
HDialog*phd=new HDialog(this);
/*
避免内存泄漏。有两个方式
1是指定phd->setAttribute(Qt::WA_DeleteOnClose);
2不调用WA_DeleteOnClose这一行也行。由于 new HDialog(this);的时候指定了this。所以this这个parent被关闭的时候也会delete这个phd
只是这个phd的周期在this关闭之前一直在内存中。所以还是建议调用phd->setAttribute(Qt::WA_DeleteOnClose);
*/
phd->setAttribute(Qt::WA_DeleteOnClose);
phd->show();
}
2弹出widget
HistoryWindow* pHistory=new HistoryWindow();
pHistory->setAttribute(Qt::WA_DeleteOnClose);
pHistory->show();