QT学习笔记(1)

QT

日期:2020-07-12

对话框

模态对话框

// A code block
QDialog dlg(this);
dlg.Resize(200,100);
dlg.exec();

模态对话框有阻塞作用;

非模态对话框

// A code block
QDialog *dlg= new QDialog(this);
dlg->Resize(200,100);
dlg->setAttribute(Qt::WA_DeleteOnClose);
dlg.show();

其中如果窗口设置了Qt::WA_DeleteOnClose 这个属性,在窗口接受了关闭事件后,Qt会释放这个窗口所占用的资源。如果不设置,由于show()不阻塞进程,可能会使相应栈中对象出栈;但如果用new将其定义在堆中,如果不设置setAttribute(Qt::WA_DeleteOnClose)会形成内存泄露。
但用时要注意如果在自定义的QDialog子类构造函数中增加:
setAttribute(Qt::WA_DeleteOnClose);
会在关闭时出现异常,因为当退出main方法时,会自动销毁窗口,而setAttribute方法会使得Qt再次销毁窗口,造成二次delete,产生报错

标准对话框

QMessageBox
QDialog
QFileDialog
QColorDialog
QFontDialog
QInputDialog
QProgressDialog
QPrintDialog
QPrintViewDialog
QPageSetupDialog

上述标准对话框中

  • QMessageBox要了解其中静态调用的方式、返回值的处理、按钮文字的调整。
QMessageBox box(QMessageBox::Warning, "退出"," 确认退出吗?");
box.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);
box.setButtonText(QMessageBox::Ok, QString("确 定"));
box.setButtonText(QMessageBox::Cancel, QString("取 消"));
int button = box.exec();
if (button == QMessageBox::Ok)
   ...
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值