在 qt中特別常見的一種資料型別,製作串列埠的過程中,關於資料的傳輸,使用到qbytearray比較多,所有有一點使用的心得,分享一下。
在串列埠中,接收資料程式如下:
qbytearray reciv_array = global_port.
readall()
;
reciv_array的資料型別是qbytearray
global_port是之前定義的串列埠,定義的串列埠如下:
qserialport global_port;
.readall();就是相對於global_port串列埠自帶的函式,是獲取串列埠傳來的資料。
qstring data = ui-
>lint_send_data-
>
text()
;qbytearray array = data.
tolatin1()
;//qstring--->qbytearray
global_port.
write
(array)
;
data是通過ui中的部件獲得的,其資料型別是qstring
ui->lint_send_data是ui視窗指向的視窗中的某一部件
qbytearray array = data.tolatin1();是qstring—>qbytearray
global_port.write(array);是向串列埠裡寫入資料
qbytearray array;
data=array.
mid(0,
4);
定義了乙個qbytearray型別的array,擷取array中的特定長度的字元。
mid(起始字元,擷取的字元長度)
qbytearray.
at(i)
;
.
at(表示取qbytearray中的第幾個)
bool ok;
data=array.
mid(0,
4).touint
(&ok,16)
;
例如:array是0x01 0001 0001,上述取的就是0x01,但是由於有.touint(&ok,16)
,所以顯示的就是int型別,就是1
data=array.
mid(0,
4).tohex()
;
例如:array是0x01 0001 0001,上述取的就是0x01,因為.tohex()就是取16進製制
以上兩個就是最常見的輸出。
Qt之QByteArray類學習
qbytearray類提供了位元組陣列,包含於 標頭檔案中,從 q3cstring 類繼承而來。qbytearray可以儲存 raw bytes 和傳統的 8 bits 的字串,都是以 0 結尾的,使用比 char 更方便qstring也可以儲存字串資訊,但通常以 16 bits 形式unicode...
QT學習之QByteArray轉QString
方法一 如下 void mainwindow on startbtn clicked qbytearray badlt645frame for i 12 i qbytearray badlt645frametohex badlt645frame.tohex std string badlt645fr...
QByteArray類學習(QT常見類學習1)
qbytearray類提供了位元組陣列,包含於 標頭檔案中,從 q3cstring 類繼承而來。qbytearray可以儲存 raw bytes 和傳統的 8 bits 的字串,都是以 0 結尾的,使用比 char 更方便qstring也可以儲存字串資訊,但通常以 16 bits 形式unicode...