QT学习笔记(5)对话框(2)

在昨天的dialog中,可以得到模态对话框的返回值,用qDebug输出。如果是非模态对话框稍微麻烦一些,要使用accept函数进行连接

void MainWindow::open()
{
    QDialog dialog;
    dialog.setWindowTitle(tr("Hello, dialog!"));
    if (dialog.exec() == QDialog::Accepted) {
        qDebug() << "accepted";
    } else {
        qDebug() << "rejected";//exec函数是有返回值的
    }
}

QT中还有许多内置好的对话框,这里还有两个MessageBox的例子

void MainWindow :: open()
{
    QMessageBox message;
    if (QMessageBox::Yes == QMessageBox::question(this, tr("Question"), tr("Are you OK?"), QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes))
    {
        QMessageBox::information(this, tr("Hmmm"), tr("I'm glad to hear that!"));
    }
    else
    {
        QMessageBox::information(this, tr("Hmmm"), tr("I'm sorry!"));
    }
}
    QMessageBox msgBox;
    msgBox.setText(tr("The document has been changed"));
    msgBox.setInformativeText(tr("Do you want to save these change?"));
    msgBox.setDetailedText(tr("Detailed diffrence here..."));
    msgBox.setStandardButtons(QMessageBox::Save
                              | QMessageBox::Discard
                              | QMessageBox::Cancel);
    msgBox.setDefaultButton(QMessageBox::Save);
    int ret = msgBox.exec();
    switch (ret)
    {
    case QMessageBox::Save:
        qDebug() << "Save changes!";
        break;
    case QMessageBox::Discard:
        qDebug() << "No change!";
        break;
    case QMessageBox::Cancel:
        qDebug() << "Close!";
        break;
    }

运行结果

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值