在昨天的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;
}