PDA

View Full Version : Changing QString to upper case



emp1953
2nd March 2018, 19:18
I am taking a number from a QSpinBox and converting it to Hex using the following line of code


QString number = QString("%1").arg(ui->spinBox_sens_nbr->value(), 2, 16, QChar('0'));

I works, giving 0a, or 0b etc. But now I need the hex number in upper case, 0A, 0B etc.....

Simply adding .toUpper(); is not working.

Anyone got a simple fix for this??

Thanks much

I got it to work using

QString number = (QString("%1").arg(ui->spinBox_sens_nbr->value(), 2, 16, QChar('0')).toUpper());

ChristianEhrlicher
3rd March 2018, 08:33
for example

QString out = QStringLiteral("0x%1").arg(QString::asprintf("%X", ui->spinBox_sens_nbr->value()), 16, QLatin1Char('0'));

DungeonLords
6th February 2024, 12:50
for example

QString out = QStringLiteral("0x%1").arg(QString::asprintf("%X", ui->spinBox_sens_nbr->value()), 16, QLatin1Char('0'));
We do not recommend using QString::asprintf() in new Qt code (https://doc.qt.io/qt-6/qstring.html).

My Qt6 version

const QString out("0x"+QString("%1").arg(ui->spinBox_sens_nbr->value(), 2, 16, QChar('0')).toUpper());

output example:
0xFC