我正在开发使用Qt Nokia SDK。
在尝试在函数中显示消息框时,我无法显示MessageBox的按钮。如果我尝试在主窗口中显示它,则显示按钮没有问题。
主窗口由一个包含不同小部件的QStackWidget组成。
以下是在主窗口中运行的代码:
QMessageBox msgBox;
msgBox.setText("Name");
msgBox.setInformativeText("Do you want to save your changes?");
msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Discard |
QMessageBox::Cancel);
msgBox.setDefaultButton(QMessageBox::Save);
int ret = msgBox.exec();
以下是我在收到来自网络请求的响应后运行的功能和代码(显示消息框,但不显示按钮。
void MainWindow::RequestReceived()
{
QMessageBox *msgBox = new QMessageBox(this);
msgBox->setText("Test");
msgBox->setWindowModality(Qt::NonModal);
msgBox->setInformativeText("Do you want to save your changes?");
msgBox->setStandardButtons(QMessageBox::Save | QMessageBox::Discard |
QMessageBox::Cancel);
msgBox->setDefaultButton(QMessageBox::Save);
int ret = msgBox->exec();
}
任何人都知道发生了什么事?
提前致谢!
答案 0 :(得分:12)
试试这个代码。它会帮助你。
QMessageBox Msgbox;
int sum;
sum = ui->textEdit->toPlainText().toInt()+ ui->textEdit_2->toPlainText().toInt();
Msgbox.setText("sum of numbers are...."+sum);
Msgbox.exec();
答案 1 :(得分:4)
也许这会有所帮助:
QMessageBox::StandardButton reply;
reply = QMessageBox::question(this, "Save", "Do you want to save your changes?",
QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel);
if (reply == QMessageBox::Save) {
qDebug() << "Yes was clicked";
// code for saving...
}
if (reply == QMessageBox::Discard)
{
// toDo
}
if(reply == QMessageBox::Cancel)
{
//toDo
}
此代码将产生以下内容:
答案 2 :(得分:0)
尝试更改此行:
QMessageBox *msgBox = new QMessageBox(this);
到
QMessageBox *msgBox = new QMessageBox(0);