2016-06-23 16 views
-1

Ich schreibe meine erste Anwendung auf Qt. Bisher auf einem QLabel beliebigen Text angezeigt werden ich folgendes wurde mit dem Format zu setzen und den Text:Setzen Sie das Textformat auf Qlabel auf eine Nummer

ui->lat_UAV_label->setText(QString("<span style=\" font-size:18pt; 
    font-weight:600; color:#0009d8;\">%1</span>").arg(lat * RAD2DEG)); 

wo „lat“ ist eine Zahl mit doppelter Genauigkeit und „rad2deg“ eine Konstante von Radiant zu konvertieren zu Grad. Ich möchte jedoch nur 2 Dezimalziffern auf dem Etikett anzeigen. Ich habe versucht, es zu tun QString().number verwenden, aber dann wird das Format Styling verloren:

ui->lat_UAV_label->setText(QString("<span style=\" font-size:18pt; 
    font-weight:600; color:#0009d8;\">%1</span>").number(lat * RAD2DEG, 'f', 2); 

ich andere Wege versucht haben, es zu tun, aber es funktioniert nicht. Ich denke, das sollte viel einfacher sein als das, was ich versuche, aber weil ich neu bin, weiß ich es nicht.

+0

Die [ 'arg' Methode selbst] (http://doc.qt.io/qt-5/ qstring.html # arg-8) hat Argumente, um die Formatierung von Doppel zu setzen –

+1

Ich würde SetFont für QLabel auch statt Schriftart mit Stil festlegen, weil jetzt Ihr Code ziemlich unlesbar ist – demonplus

Antwort

0

Ich hatte das versucht @Karsten Koop, aber ich hatte es falsch gemacht, also dachte ich, ich könnte es nicht so machen. Vielen Dank, es funktioniert jetzt:

ui->lat_UAV_label->setText(QString(myBlueStyle).arg(lat * RAD2DEG, 0, 'f', 2); 

wo myBlueStyle wie folgt definiert ist:

QString myBlueStyle = "<span style=\" font-size:18pt; font-weight:600; color:#0009d8;\">%1</span>"; 
Verwandte Themen