2016-06-23 6 views
-1

Я пишу свое первое приложение на Qt. До сих пор, чтобы отобразить любой текст на QLabel я использовал следующее, чтобы установить формат и текст:Установите текстовый формат на Qlabel на номер

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

где «ш» является двойным номером точности и «RAD2DEG» является константой для преобразования из радиана до градусов. Тем не менее, я хочу отображать только две десятичные цифры на этикетке. Я пытался сделать это с помощью QString().number, но формат стиль теряется:

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

Я попробовал другие способы сделать это, но он не работает. Я думаю, что это должно быть намного проще, чем то, что я пытаюсь сделать, но поскольку я новичок в этом, я этого не знаю.

+0

код [ 'arg' сам метод] (http://doc.qt.io/qt-5/ qstring.html # arg-8) имеет аргументы для установки форматирования удвоений –

+1

Я бы использовал setFont для QLabel, а не для установки шрифта со стилем, потому что теперь ваш код довольно нечитабельный – demonplus

ответ

0

Я пробовал это @ Karsten Koop, но я сделал это неправильно, поэтому я думал, что не могу этого сделать. Большое спасибо, что сейчас работает:

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

где myBlueStyle определяется как:

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