如何在Qt QMessageBox中添加变量值?

时间:2016-06-23 05:47:32

标签: c++ qt qt5 qmessagebox

printf("This machine calculated all prime numbers under %d %d times in %d 
  seconds\n", MAX_PRIME, NUM_OF_CORES, run_time);

我希望此输出打印在QMessageBox文本框中。

我已经查看QMessageBox文档并没有找到任何有用的信息。

2 个答案:

答案 0 :(得分:2)

QMessageBox没有任何关系,因为它没有任何业务 - 它只是在你传递它们时显示字符串。但是,QString确实提供了使用arg方法格式化替换占位符的数据的方法:

QMessageBox::information(parent,
     QString("This machine calculated all prime numbers under %1 %2 times in %3 seconds")
         .arg(MAX_PRIME)
         .arg(NUM_OF_CORES)
         .arg(run_time), "Message title");

http://doc.qt.io/qt-5/qstring.html#argument-formats

http://doc.qt.io/qt-5/qstring.html#arg

答案 1 :(得分:1)

首先,您必须为QString填写QMessageBox。您可以使用QString的方法arg来执行此操作。然后,您可以使用QMessageBox的静态方法information显示消息框。在您的情况下代码将是:

QMessageBox::information(nullptr/*or parent*/, "Title",  
    QString("This machine calculated all prime numbers under %1 %2 times in %3 seconds")
    .arg(MAX_PRIME).arg(NUM_OF_CORES).arg(run_time));