Qt:对话框QMessageBox/QDialog

模态对话框:对话框阻塞,此时只能在对话框操作,不能操作父窗口
非模态对话框:可以操作父窗口

标准对话框

1. 构造函数构建
QMessageBox message(QMessageBox::NoIcon, "title", "content", QMessageBox::Yes | QMessageBox::No |    QMessageBox::Cancel);
    message.setIconPixmap(QPixmap("icon.png"));
    message.setStyleSheet("background-color:rgb(50,50,50);color: rgb(255,255,255);width:300px;font-size:28px;");
    // 非模态
    message.show();
    // 模态
    int res = message.exec();
    if(QMessageBox::Yes == res) {
        qDebug() << "ok";
    }
2. 静态方法(about/question/warning/information)
int res = QMessageBox::about(this, "title", "content", QMessageBox::Save | QMessageBox::Cancel);
	if(QMessageBox::Save == res) {
	    qDebug() << "save";
	}

Qdialog

属性
setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint | Qt::Dialog); // 置于所有程序的顶层

模态:
setAttribute(Qt::WA_ShowModal, true); // 属性设置
setWindowModality(Qt::WindowModal); // 设置阻塞类型
setModal(true);

Qdialog dialog;
int res = dialog.exec();
if (res == QDialog::Accepted) {
    QMessageBox::(this, "INFORMATION", "You clicked OK button!");
} else if (res == QDialog::Rejected) {
     QMessageBox::(this, "INFORMATION", "You clicked NO button!");
}

QDialogButtonBox

QDialogButtonBox* btnBox = new QDialogButtonBox(Qt::Horizontal); //QDialogButtonBox使用方法
btnBox->addButton(btnOK, QDialogButtonBox::ActionRole);
btnBox->addButton(btnNO, QDialogButtonBox::ActionRole);

文件对话框

// 默认打开目录"." ,后缀名过滤
QString filePath = QFileDialog::getOpenFileName(this, "title", ".", "image(*.jpg,*.png);all(*.*)");
if(filePath.length() == 0) {
    QMessageBox::information(NULL, tr("Path"), tr("You didn't select any files."));
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值