http://blog.csdn.net/HMSIWTV/article/category/1128561/2git
這裏介紹的基本類包括 QChar, QString, QPoint, QSize, QRect, QFont, QPixmap, Qlcon。編程
這裏介紹的窗口類包括 QWidget,QDialog,QLabel,QAbstratacButton,QPushButton, QCheckBox,QRadioButton,QLineEdit。數組
版權聲明:本文爲博主原創文章,未經博主容許不得轉載。安全
QCharapp
QChar 類是 Qt 中用於表示一個字符的類,實如今 QtCore 共享庫中。QChar 類內部用2個字節的Unicode編碼來表示一個字符。less
構造ide
QChar 類提供了多個不一樣原型的構造函數以方便使用,如:函數
實際使用時不多直接構造 QChar 類的對象,而是把這些構造函數當作類型轉換來用,讓編譯器自動構造所需的QChar類對象。也就是說,在全部須要QChar類做爲參數的地方均可以安全地使用各類整數類型。佈局
判斷post
QChar 類提供了不少成員函數,能夠對字符的類型進行判斷,如:
轉換
QChar 類提供了一些成員函數進行數據的轉換,如:
比較
Qt 中定義了一些與 QChar 類相關的比較操做符, 如:
版權聲明:本文爲博主原創文章,未經博主容許不得轉載。
QString 類是 Qt 中用於表示字符串的類,實如今 QtCore 共享庫中。QString 類在實現上有如下特徵。
1)字符串採用 Unicode 內部編碼,能夠表示世界上大多數語言的文字。
2)字符串的存儲有引用計數,當一個 QString 對象被複製爲另外一個 QString 對象時,它們實際上指向相同的存儲空間,僅僅是增長一個引用計數。
3)採用 「按需複製」 的技術,當指向相同存儲空間的多個 QString 對象中的一個要被修改時,將真正複製一個新的字符串並進行修改。
構造
QString 類提供了不少不一樣原型的構造函數以方便使用。如:
判斷
能夠用下面的成員函數判斷 QString 對象是否爲空字符串:
轉換
QString 類提供了不少函數用於將字符串轉換爲數值,如:
注意: 當字符串以 0x開頭時,轉換的基自動轉換爲16, 當字符串以0開頭時,轉換的基自動爲8。
下面這些成員函數能夠將一個數值轉換爲字符串並設爲 QString 對象的值:
將浮點數轉換爲字符串時,format 參數指定轉化格式,precision 參數指定轉換結果的精度,既有效數組的個數。注意這些函數會改變 QString 對象自己的值,而如下的函數則採用了不一樣的作法,它們返回一個新的臨時對象以供使用:
QString 類也提供了大小寫轉換的函數,如:
比較
QString 類提供了一個函數用於兩個 QString 對象的比較:
這是一個靜態成員函數,它能夠比較 s1 和 s2 的大小,參數 cs 有如下兩個取值。
爲了方便使用,QString 類還提供瞭如下重載函數用於比較:
實際上更爲直觀的是使用 QString 類的比較操做符,如:
查找
用如下的成員函數能夠判斷 QString 對象是否包含指定的字符串或字符:
QString 類中還有與此功能類似的函數用於從後往前查找字符串或字符:
字符串處理
QString 類支持用賦值操做符進行對象的複製,其賦值操做符的聲明以下:
如下的成員函數能夠將另外一個字符串或字符接在 QString 對象後面,造成一個總體的字符串:
它們的返回值是 QString 對象本身的引用,也就是說,能夠用在這個返回值再次調用成員函數,造成連續的字符串接續操做。
爲了讓代碼更直觀, QString 類中還定義了一個操做符用於字符串的接續:
與 append 函數功能相似,如下的成員函數也可以將另外一個字符串或字符與 QString 對象鏈接起來,可是接在原字符串的前面:
功能更通常化的是在 QString 對象的任意位置插入另外一個字符串或字符,如:
與插入相反的操做是移除 QString 對象中的一部分,如:
這個函數能夠移除 QString 對象中從位置 position 開始的 n 個字符,下面兩個成員函數則能夠從 QString 對象中移除指定的字符串或字符:
這三個函數的功能是將 QString 對象從 position 開始的 n 個字符替換爲新內容,新內容分別由 QString 對象、QChar 數組 和 QChar 對象表示。
如下成員函數則能夠搜索指定的字符串或字符並開始替換:
注意上述三個函數並不修改 QString 對象自身,而是返回一個臨時對象以供使用。
下面這個成員函數能夠截去 QString 對象中頭部和尾部的空白字符:
空白字符包括空格、回車、換行、製表符等字符。下面這個成員函數不只能去掉 QString 對象頭尾的空白字符,還能將中間的連續多個空白字符所有替換成一個空格:
注意加法操做符的兩個操做數中必須至少有一個是 QString 對象,不然沒法重載操做符。顯然,加法操做副都不是 QString 類的成員。
索引
QString 類也像普通的字符串同樣能夠根據下標獲得某個位置上的字符:
統計
如下兩個成員函數均可以獲得 QString 對象中字符的個數:
版權聲明:本文爲博主原創文章,未經博主容許不得轉載。
QPoint 類表明一個座標點,實如今 QtCore 共享庫中。它能夠認爲是一個整型的橫座標和一個整型的縱座標的組合。
構造
QPoint 類支持如下兩種構造方式:
經過如下成員函數可獲得 QPoint 對象中的橫縱座標的引用:
經過如下的成員函數能夠設置 QPoint 對象中的橫縱座標:
QPoint 類支持加法和減法的複合賦值操做:
版權聲明:本文爲博主原創文章,未經博主容許不得轉載。
QSize 類表明一個矩形區域的大小,實如今 QtCore 共享庫中。它能夠認爲是由一個整型的寬度和整型的高度組合而成的。
構造
屬性
如下成員函數能夠獲得 QSize 對象中寬度和高度的引用:
QSize 類支持和 QPoint 類類似的操做符。
版權聲明:本文爲博主原創文章,未經博主容許不得轉載。
QFont 類表明字體,實如今 QtGui 共享庫中。
構造
QFont 類有如下幾個經常使用的構造函數:
1) family: 字體的名稱。
2) pointSize: 字體的點大小,若是這個參數小於等於0,則自動設爲 12。
3) weight: 字體的粗細。
4) italic: 字體是否爲斜體。
這些參數也能夠在字體對象構造之後經過屬性來修改。
屬性
QFont 類的經常使用屬性以下所示:
字體的屬性 獲取所用成員函數 設置全部成員函數
名稱 QString family() const; void setFamily(const QString &family);
點大小 int pointSize() const; void setPointSize(int pointSize);
像素大小 int pixelSize() const; void setPixelSize(int pixelSize);
粗細 int weight() const; void setWeight(int weight);
粗體 bool bold() const; void setBold(bool enable);
斜體 bool italic() const; void setItalic(bool enable);
下劃線 bool underline() const; void setUnderline(bool enable);
其中設置粗體屬性實際上就是將字體的粗細設爲一個肯定的值。點大小與像素大小是指定字體大小的兩種方式。若是指定了點大小,則像素大小屬性的值就是 -1;反之若是指定了像素大小,則點大小屬性的值就是 -1。
若是指定的字體在使用時沒有對應的字體文件,Qt 將自動選擇最接近的字體。若是要顯示的字符在字體中不存在,則字符會被顯示爲一個空心方框。
版權聲明:本文爲博主原創文章,未經博主容許不得轉載。
QPixmap 類表明圖像,實如今 QtGui 共享庫中。
構造
如下構造函數生成的 QPixmap 對象爲空圖像:
1) filename: 文件名。
2) format: 字符串,表示圖像文件的格式,若是爲 0,將進行自動識別。
3) flags:表示顏色的轉換模式。
若是圖像文件加載失敗則產生空圖像,這裏 flags 參數有如下取值。
1) Qt::AutoColor:由系統自動決定。
2) Qt::ColorOnly:彩色模式。
3) Qt::MonoOnly:單色模式。
圖像參數
如下成員函數能夠得到 QPixmap 對象所表示的圖像的相關信息:
加載和保存圖像
用下面的成員函數能夠從文件加載圖像:
這裏各個參數的含義與構造函數中同樣,返回值爲 true 表示加載成功,false 表示加載失敗。相反的操做是將 Qpixmap 表明的圖像保存到文件,可用如下成員函數:
1) filename:文件名。
2) format:字符串,表示圖像文件的格式,若是爲 0,將根據文件名的後綴自動肯定文件格式。
3) quality:對於有損壓縮的文件格式來講,它表示圖像保存的質量,質量越低壓縮率越大。取值範圍爲 0~100,-1 表示採用默認值。
4) 返回值:true 表示保存成功,false 表示保存失敗。
判斷
如下成員函數能夠判斷 QPixmap 對象是否爲空圖像:
版權聲明:本文爲博主原創文章,未經博主容許不得轉載。
QIcon 類表明圖標,實如今 QtGui 共享庫中。QIcon 對象能夠認爲是一系列圖像的組合,每一個圖像表明窗口在某種狀態下應該1顯示的圖標。
構造
QIcon 類支持如下構造函數:
添加圖像
下面的成員函數能夠從圖像文件中向 QIcon 對象添加圖像:
1)filename:文件名。
2)size:指定大小。
3)mode:指定使用模式,即窗口在何種狀態下使用這個圖像。
4)state:指定使用狀態。
Mode 爲 QIcon 類的成員類型,有如下取值。
1)QIcon::Normal:窗口爲使能狀態,但未激活。
2)QIcon::Disabled:窗口爲禁用狀態。
3)QIcon::Active:窗口爲激活狀態。
4)QIcon::Selected:窗口被選中。
當窗口的狀態切換時,默認的圖標繪製函數會自動根據窗口的狀態重繪圖標。若是窗口還有所謂的開關狀態(好比一個按鈕能夠有按下和彈起兩個狀態),則還能夠根據 state 參數來選擇不一樣的圖像。state 參數爲 State 類型,這也是一個 QIcon 類的成員類型,它有如下取值。
QIcon::Off:窗口在關狀態。
QIcon::On:窗口在開狀態。
另一個成員函數能夠直接將 QPixmap 對象添加到 QIcon 對象中:
獲取圖像
下面的成員函數能夠獲取 QIcon 對象中的圖像:
注意返回的圖像大小可能比指定的小,但不會比指定的大。
判斷
如下成員函數能夠判斷 QIcon 對象是否爲空圖像構成的圖標:
版權聲明:本文爲博主原創文章,未經博主容許不得轉載。
QWidget 類表明通常的窗口,其餘窗口類都是從 QWidget 類繼承出來的。而 QWidget 類則同時繼承了 QObject 類 和 QPaintDevice 類,也就是說,窗口類都是 Qt 對象類。這裏的 QPaintDevice 類則是全部可繪製的對象的基類。
經常使用窗口類的繼承關係如圖所示:
構造
QWidget 類的構造函數以下:
參數 f 是構造窗口的標誌,主要用於控制窗口的類型和外觀等,有如下經常使用值。
1)Qt::FramelessWindowHint:沒有邊框的窗口。
2)Qt::WindowStaysOnTopHint:老是最上面的窗口。
3)Qt::CustomizeWindowHint:自定義窗口標題欄,如下標誌必須與這個標誌一塊兒使用纔有效,不然窗口將有默認的標題欄。
4)Qt::WindowTitleHint:顯示窗口標題欄。
5)Qt::WindowSystemMenuHint:顯示系統菜單。
6)Qt::WindowMinimizeButtonHint:顯示最小化按鈕。
7)Qt::WindowMaximizeButtonHint:顯示最大化按鈕。
8)Qt::WindowMinMaxbuttonHint:顯示最小化按鈕和最大化按鈕。
9)Qt::WindowCloseButtonHint:顯示關閉按鈕。
獨立窗口
窗口構造的時候若是有 Qt::Window 標誌,那麼它就是一個獨立窗口,不然就是一個依附於其餘獨立窗口的窗口部件。頂級窗口必定是獨立窗口,但獨立窗口不必定是頂級的,它能夠有父窗口,當父窗口被析構時它也會隨之被析構。獨立窗口通常有本身的外邊框和標題欄,能夠有移動、改變大小等操做。
一個窗口是否爲獨立窗口可用下面的成員函數來判斷:
而下面這個函數能夠獲得窗口的父窗口:
窗口標題
WindowTitle 屬性表示窗口的標題,與之相關的成員函數以下:
這裏的幾何參數指的是窗口的大小和位置。一個窗口有兩套幾何參數,一套是窗口外邊框所佔的矩形區域,另外一套是窗口客戶區所佔的矩形區域。所謂窗口客戶區就是窗口中去除邊框和標題欄用來顯示內容的區域。
這兩套幾何參數分別由兩個 QRect 型的屬性表明,相關的成員函數以下:
注意:不要在 moveEvent 或 resizeEvent 兩個事件處理函數中設置幾何參數,不然將致使無限循環。
窗口的幾何參數也能夠由用戶的操做改變,這時也會發送相應的事件。
爲了方便使用,與幾何參數相關的成員函數還有如下這些:
還有一個屬性比較特殊,相關的成員函數以下:
注意: 對於一個窗口部件來講,它的兩套幾何參數是一致的。
可見性與隱藏
可見性指的是窗口是否顯示在屏幕上的屬性。被其餘窗口暫時遮擋住的窗口也屬於可見的。可見性由窗口的 visible 屬性表示,與之相關的成員函數以下:
1)隱藏的窗口必定是不可見的。
2)非隱藏的窗口在它的父窗口可見的狀況下也是可見的。
3)非隱藏的頂級窗口是可見的。
setVisible 和 setHidden 同時也是槽,它們通常並不直接使用,而是使用如下幾個槽:
窗口狀態
獨立窗口有正常、全屏、最大化、最小化幾種狀態,與之相關的成員函數以下:
另外還有一個 windowState 屬性和窗口狀態有關,相關的成員函數以下:
1)Qt::WindowNoState:無標誌,正常狀態。
2)Qt::WindowMinimized:最小化狀態。
3)Qt::WindowMaxmized:最大化狀態。
4)Qt::WindowFullScreen:全屏狀態。
5)Qt::WindowActive:激活狀態。
這裏取值能夠用 「按位或」 的方式組合起來使用。
須要注意的是,調用 setWindowState 函數將使窗口變爲隱藏狀態。
使能
處於使能狀態的窗口才能處理鍵盤和鼠標等輸入事件,反之,處於禁用狀態的窗口不能處理這些事件。窗口是否處於使能狀態由屬性 enabled 表示,相關成員函數以下:
其中兩個設置屬性的函數同時也是槽。窗口的使能狀態也可能影響外觀,好比處於禁用狀態的按鈕文本自己爲灰色。
使能狀態和窗口的可見性有類似的邏輯:禁用一個窗口同 時會使它的全部子窗口成爲禁用狀態。
激活狀態
當有多個獨立窗口同時存在時,只有一個窗口可以處於激活狀態。系統產生的鍵盤、鼠標等輸入事件將被髮送給處於激活狀態的窗口。通常來講,這樣的窗口會被提高到堆疊層次的最上面,除非其餘窗口有總在最上面的屬性。與激活狀態相關的成員函數以下:
焦點
焦點用來控制同一個獨立窗口內哪個部件能夠接受鍵盤事件,同一時刻只能有一個部件得到焦點。與焦點有關的成員函數以下:
setFocus 函數同時又是一個槽。窗口部件獲得焦點之後,別忘了還須要它所在的獨立窗口處於激活狀態才能獲得鍵盤事件。
一個窗口得到焦點,同時意味着另外一個窗口失去焦點。當窗口得到或失去焦點時,將發送 QFocusEvent 事件,它有兩個處理函數:forceInEvent 和 focusOutEvent,分別對應得到焦點和失去焦點。
值得一提的是 editFocus 屬性,這是一個專門用於嵌入式系統的屬性。由於嵌入式系統一般鍵盤較小,沒有專門用於切換焦點的 Tab 鍵,因此上下方向鍵被用來切換焦點。若是一個窗口部件設置 editFocus 屬性爲 true,則上下方向鍵就再也不用於切換焦點,而是發送給這個窗口。與這個屬性相關的成員函數以下:
捕獲鍵盤和鼠標事件
窗口部件即便得到焦點,也不必定能得到按鍵事件,由於其餘窗口可能會捕獲鍵盤事件。捕獲了鍵盤事件的窗口將獲得全部鍵盤事件,而其餘窗口將徹底獲得不到鍵盤事件,直到捕獲了鍵盤事件的窗口釋放鍵盤事件。與鍵盤事件捕獲相關的成員函數以下:
如下的成員函數可以獲得應用程序中正在捕獲鍵盤或鼠標事件的窗口:
這兩個函數是靜態函數。
佈局
屬性 layout 表明窗口的頂級佈局,相關的成員函數以下:
字體
font 屬性表示所用的字體,相關的成員函數以下:
若是沒有爲窗口設置字體,則窗口自動使用父窗口的字體,頂級窗口則使用應用程序的默認字體。
信號
當窗口要被析構時會發射如下信號:
槽
在前面的介紹中已經說起了 QWidget 類的許多槽,這裏將介紹其餘經常使用的槽。
下面的槽能夠關閉窗口:
這個槽的返回值表示關閉事件是否被接受,也就是窗口是否真的被關閉了。
下面的槽能夠提高或下降窗口所在的堆疊層次:
QWidget 類可以處理類型豐富的事件,這裏將介紹一些經常使用的事件處理函數。
窗口事件:
這裏經過 QKeyEvent 類的成員函數能夠得到關於按鍵的一些信息,如:
1)Qt::NoButton:無鍵。
2)Qt::LeftButton:左鍵。
3)Qt::RightButton:右鍵。
4)Qt::MidButton:中鍵。
注意,對於鼠標移動事件 QMouseEvent 和 button 函數老是返回 Qt::NoButton,而 buttons 函數返回值則是 Qt::MouseButton 類型的 「按位或」 組合,它能反映事件發生時鼠標鍵的按下狀態。
QWheelEvent 類表明滾輪事件,它有一套與 QMountEvent 類幾乎相同的成員函數,但少一個 button 函數,多如下兩個函數:
1)Qt::Horizontal:橫向。
2)Qt::Vertical:縱向。
焦點事件:
版權聲明:本文爲博主原創文章,未經博主容許不得轉載。
QDialog 類表明對話框。對話框通常用來實現那些只是暫時存在的用戶界面。對話框是獨立的窗口,但一般它也有父窗口,當對話框顯示時,默認的位置在父窗口的中央。從外觀上來看,對話框通常沒有最大化、最小化按鈕。
對話框有模態和非模態兩種形式。非模態對話框的的行爲和使用方法都相似於普通的窗口。模態對話框則有所不一樣,當模態對話框顯示時,其餘窗口將所有進入非激活狀態,不能接受鍵盤和鼠標事件。模態的方式又能夠分爲兩種,一種是對整個應用程序模態,這時它的出現將致使程序中的全部窗口失去響應;另外一種是對窗口模態,這時僅僅會致使它所在的整個窗口樹失去響應。
構造
QDialog 類的構造函數與 QWidget 類形式相同:
模態性
用下面的成員函數可將對話框設爲模態:
1)Qt::NonModal:非模態。
2)Qt::WindowModal:窗口模態。
3)Qt::ApplicationModal:應用程序模態。
與模態性相關的成員函數還有如下兩個:
執行與結果
下面這個函數將以模態方式顯示對話框:
對話框的結果與下面的函數有關:
1)QDialog::Accepted:表示肯定。
2)QDialog::Rejected:表示取消。
對話框一般有一個肯定按鈕和一個取消按鈕,它們能使對話框關閉並返回相應的值。爲了與按鈕的 clicked() 信號鏈接,須要用到如下的槽:
打開
下面這個函數將以對窗口模態的方式顯示對話框:
版權聲明:本文爲博主原創文章,未經博主容許不得轉載。
QLabel 類表明標籤,它是一個用於顯示文本或圖像的窗口部件。
構造
QLabel 類支持如下構造函數:
屬性
QLabel 對象的顯示內容能夠經過屬性獲取或修改,相關成員函數以下:
其中進行設置的函數同時也都是槽。新設置的內容將取代原來的內容。
用如下的成員函數則能夠清空顯示內容:
1)Qt::AlignLeft::水平方向靠左。
2)Qt::AlignRight:水平方向靠右。
3)Qt::AlignHCenter:水平方向居中。
4)Qt::AlignJustify:水平方向調整間距兩端對齊。
5)Qt::AlignTop:垂直方向靠上。
6)Qt::AlignButton:垂直方向靠下。
7)Qt::AlignVCenter:垂直方向居中。
8)Qt::AlignCenter:等價於 Qt::AlignHCenter | Qt::AlignVCenter。
其中一個水平方向的取值和一個垂直方向的取值能夠用 「按位或」 的方式組合起來以同時指定兩個方向的對齊方式。默認的對齊方式爲水平靠左、垂直居中。
indent 屬性表明文本的縮進值,相關的成員函數以下:
版權聲明:本文爲博主原創文章,未經博主容許不得轉載。
QAbstractButton 類是 QPushButton,QCheckBox,QRadioButton 等類的基類,它能夠表明按鈕、單選紐、複選紐等重要窗口部件。一般不會直接使用這個類,這裏主要介紹它的一些屬性、信號和槽,介紹時暫時將這些窗口部件統稱爲鈕。
屬性
checkable 屬性表明鈕是否支持開關狀態,好比按鈕通常沒有開關狀態,而單選鈕和複選鈕都有打開和關閉兩個狀態。與 checkable 屬性相關的成員函數以下:
autoExclusive 屬性表示一個鈕是否排他,相關的成員函數以下:
down 屬性表明鈕是否處於被按下的狀態,相關成員函數以下:
注意設置這個屬性僅僅是改變鈕的外觀,不會發射任何信號。
經過 icon 和 text 屬性能夠設置鈕所顯示的圖標及文本,相關成員函數以下:
信號
在鈕上用鼠標左鍵或者當鈕獲得焦點的時候用空格鍵都能操做這個鈕。當鈕被按下和鬆開時,將發射如下信號:
當鈕的開關狀態變化時,將發射如下信號:
槽
下面的兩個槽都可以模擬鈕被單擊的過程:
二者的不一樣點在於,click 函數不會改變鈕的外觀,它會直接進行單擊的處理過程;而animateClick() 函數將徹底模擬用戶按下按的過程,參數 msec 就是鈕被按下的毫秒數。二者最終都會致使 pressed,released 和 clicked 信號的發射。
下面的槽將致使鈕的開關狀態發生切換:
版權聲明:本文爲博主原創文章,未經博主容許不得轉載。
QPushButton 類表明按鈕,它繼承了 QAbstractButton 類,所以也有其所有的屬性、信號和槽。
構造
QPushButton 類支持如下構造函數:
屬性
按鈕的外觀通常是有立體感的。經過它的 flat 屬性能夠控制外觀是否爲扁平狀,相關成員函數以下:
若是一個按鈕在對話框中,那麼它就有默認和自動默認的概念,分別由 defaults 屬性以及 autoDefault 屬性控制,相關的成員函數以下:
版權聲明:本文爲博主原創文章,未經博主容許不得轉載。
QCheckBox 類表明複選鈕,它繼承了 QAbstractButton 類,所以也有其所有的屬性、信號和槽。
構造
QCheckBox 支持如下構造函數:
屬性
tristate 屬性用於控制複選鈕是否爲三態的,相關的函數函數以下:
1)Qt::Unchecked:未選中。
2)Qt::PartiallyChecked:部分選中。
3)Qt::Checked:選中。
部分選中的狀態常常用來表示一個選項樹中某個選項的子選項有的選中、有的未選的狀態。若是是一個複選鈕不是三態的,則也能夠用從 QAbstractButton 繼承來的 checked 屬性操做它的狀態。
信號
當複選鈕的狀態發生變化時,將發射如下信號:
版權聲明:本文爲博主原創文章,未經博主容許不得轉載。
QRadioButton 類表示單選鈕,它繼承了 QAbstractButton 類,所以也有其所有的屬性、信號和槽。QRadioButton 類支持如下構造函數:
版權聲明:本文爲博主原創文章,未經博主容許不得轉載。
QLineEdit 類表明編程框,它可讓用戶輸入一個單行文本。
構造
QLineEdit 類支持如下構造函數:
屬性
alignment 屬性表示顯示文本的對齊方式,相關成員函數以下:
maxLength 屬性表示編輯框能夠允許的最大輸入長度,相關成員函數以下:
信號
當編輯框的內容發生變化時,將發射如下信號:
當編輯框的內容被編輯時,將發射如下信號:
當在編輯框中按下回車鍵時,將發射如下信號:
槽
調用下面的槽能夠清空編輯框中的內容: