Qt在槽里面弹出模态和非模态对话框

弹出模态对话框

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();






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值