Qt NokiaSDKを使用して開発しています。
関数内でメッセージボックスを表示しようとすると、メッセージボックスのボタンを表示できません。メインウィンドウ内に表示しようとしても、ボタンの表示に問題はありません。
メインウィンドウは、さまざまなウィジェットを保持する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();
これは、Web要求からの応答を受信した後に実行する関数とコードです(メッセージボックスは表示されますが、ボタンは表示されません。
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();
}
誰が何が起こっているのか考えましたか?
前もって感謝します!
このコードを試してみてください。
QMessageBox Msgbox;
int sum;
sum = ui->textEdit->toPlainText().toInt()+ ui->textEdit_2->toPlainText().toInt();
Msgbox.setText("sum of numbers are...."+sum);
Msgbox.exec();
多分これは役立つでしょう:
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
}
このコードは次を生成します:
この行を変更してみてください:
QMessageBox *msgBox = new QMessageBox(this);
に
QMessageBox *msgBox = new QMessageBox(0);