2016-06-23 11 views
0
printf("This machine calculated all prime numbers under %d %d times in %d 
    seconds\n", MAX_PRIME, NUM_OF_CORES, run_time); 

Ich möchte diesen Ausgang in QMessageBox Textfeld gedruckt werden.Wie man Variablenwert in Qt QMessageBox hinzufügt?

Ich bin durch QMessageBox Dokumentation gegangen habe nichts hilfreich gefunden.

+0

Mögliches Duplikat [Display QMessageBox mit mehreren Argumenten] (http://stackoverflow.com/questions/30062868/display-qmessagebox-with-multiple-arguments) – demonplus

Antwort

1

allererst Sie QString für Sie QMessageBox füllen müssen. Sie können es mit der Methode arg von QString tun. Dann können Sie das Meldungsfeld mit der statischen Methode information von QMessageBox anzeigen. In Ihrem Fall wird Code sein:

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)); 
2

QMessageBox hat nichts dafür, weil es nichts davon ist - es zeigt nur Zeichenfolgen, wie Sie sie bestanden haben. Allerdings ist QString Methoden zur Datenformatierung Platzhalter mit dem arg Verfahren ersetzt:

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