[SOLVED]QByteArray values to hex formatted QString
I'd like to display QByteArray byte values in my plaintextedit in the following format:
00 00 00 .... 00 (20 values per line)
00 00 00 ... 00
I'm using QString::number ( qbytearray[i], 16) but it casts to long/int/uint formats and byte numbers>0x7f show up in the form of ffffffxx (for example if my byte=0xC0 then the output will be ffffffc0). I'm new to Qt so before I dive into improvised variable manipulations I'd like to ask if there is an easier method provided by Qt libraries. Thank you
Did you consider using QByteArray::toHex() for that? The result will not be formatted like you are showing, but that should be easy enough to do as a next step.
Alternatively, you could consider a completely different approach. You could create a custom model operating on your byte array, and use a QTableView to display the values instead.
it sounds to me that you are trying to develop a HexEditor.
If it so, have you checked:
Anyway, as usual the doc or google is your friend.
google for "qt from int to hex "
Gives you the following result:
I think this would result in the wanted output since you want to interpret it as an unsigned value :
QString::number ((uchar) qbytearray[i], 16)
[quote]Did you consider using QByteArray::toHex() for that?[/quote]
Andre, thank you for the tip, I came up with a solution using the ::toHex method you suggested.
[quote]it sounds to me that you are trying to develop a HexEditor.[/quote]
Messi, thank you for your help, I'll check your links later. It is not a hex editor but a simple app which displays the received bytes from the serial port.
[quote]I think this would result in the wanted output since you want to interpret it as an unsigned value [/quote]
Thank you dvdk.
Edit: @ tags are for code sections, not for quoting previous posts; Andre
in that case I would check the source of hexdump.
I know it is in C but it gives you an idea how to program that routine quite fast.