2011-07-02 537 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

相关问题