2011-07-02 374 views
2

我正在使用QT應用程序,用戶將他們的信息輸入到幾個QLineEdits中。然後他們會點擊一個提交按鈕。我希望QMessageBox出現詢問他們是否想確認他們的信息(OK)或取消。我想讓消息框顯示他們輸入的信息,以便他們檢查是否準確。這裏是我到目前爲止的代碼:是否可以將QString傳遞給QMessageBox?

QString infoStr = (ui->lastEdit->text() + ", " + ui->firstEdit->text() + "\n" + ui->addressEdit->text() + "\n" + ui->cityEdit->text() + ", " + ui->stateBox->currentText() + " " + ui->zipEdit->text()); 


switch(QMessageBox::question(
          this, 
          tr("Confirm"), 
         tr(infoStr&), 

          QMessageBox::Ok | 
          QMessageBox::Cancel)) 
       { 
       case QMessageBox::Ok: 
        QMessageBox::information(this, "OK", "Confirmed"); 
        break; 
       case QMessageBox::Cancel: 
        //Cancel 
        break; 
       } 

我是新來的Qt和C++。任何建議將不勝感激。

+0

[有點offtopic]有一個「確定/取消」確認對話通常是一個糟糕的設計。更合適的解決方案是撤消。你不想打斷正常的流程。此外,人們無論如何都無法閱讀(完全確定的事實),因此無論如何都沒有任何好處。 – MSalters

回答

3

您應該read a proper book on C++。對於這一點,你只需要字符串作爲參數傳遞,翻譯可能不是你希望發生什麼,&只是一個語法錯誤:

QMessageBox::question(
    this, tr("Confirm"), infoStr, QMessageBox::Ok | QMessageBox::Cancel 
); 
+0

謝謝!這爲我解答。我知道這是我正在做的一些愚蠢的事情。就像我說的,我是C++的新手。再次感謝。 – Dylan

相關問題