我的QT5學(xué)習(xí)之路(三)——模板庫(kù)、工具類和控件(中)
一、前言
前面我們了解了關(guān)于Qt字符串的一些簡(jiǎn)單操作,容器類的分類和各自的主要特點(diǎn)以及用途,這一次我們了解一些常見的工具類和常見的控件。
二、QByteArry和QVariant
2.1 QByteArry
關(guān)于QByteArry,我們?cè)谏掀性?jīng)看到過(guò)。QByteArry和QString的功能和API基本類似,具有很多相似的函數(shù)。不同的地方在于QByteArry能夠存儲(chǔ)原生的二進(jìn)制數(shù)據(jù)和8位編碼的文本數(shù)據(jù),那么何為原生的二進(jìn)制數(shù)據(jù)和8為編碼的文本數(shù)據(jù)呢?稍微了解計(jì)算機(jī)原理的童鞋可能都知道,計(jì)算機(jī)內(nèi)部所有的數(shù)據(jù)都是以0和1的形式進(jìn)行存儲(chǔ)的,這種存儲(chǔ)形式就是二進(jìn)制。對(duì)于這些二進(jìn)制代碼,計(jì)算機(jī)并不知道其具體的含義,需要通過(guò)上下文進(jìn)行決定。對(duì)于文件而言,即使是一個(gè)文本文件,讀出時(shí)也可以按照二進(jìn)制的形式讀出,這就是二進(jìn)制格式。如果把這些二進(jìn)制中的0和1按照編碼解釋成一個(gè)個(gè)的字符,就可以構(gòu)成一個(gè)文本了。因此,QByteArry實(shí)際上楇原生的二進(jìn)制,也可以看作是文本,具有文本的一些操作。但是對(duì)于文本字符流的操作,還是建議使用QString而不是QByteArry,因?yàn)镼String支持Unicode。
出于方便,QByteArry自動(dòng)的保證最后一個(gè)字節(jié)之后的那位的值是“