Qt樣式表使用說明_第1頁
Qt樣式表使用說明_第2頁
Qt樣式表使用說明_第3頁
Qt樣式表使用說明_第4頁
Qt樣式表使用說明_第5頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

嗯Qt樣式運用說明

一、聲明:

1.文檔說明:

?學習Qt樣式表前提:

假如你了解CSS,那么我信任這對你來說會很簡潔理解并應用于實際界面美化,它及CSS

有些相像之處,當然假猶如時也了解Qt,那么你會很快學會如何運用Qt樣式為程序設(shè)計出

美麗的界面。

?閱讀本說明文檔:

首先一、閱讀聲明,二、名詞說明,三、語法簡介,六、附屬例題說明,每次試驗并比

照著五、樣式表參照表,體會并學習如何運用樣式表里關(guān)鍵詞。

?樣式表參照表之間的關(guān)系很困難:

許多須要重復描述的選擇器、屬性、值,但由于木文檔不能跳轉(zhuǎn),所以要自己去查找,

依據(jù)它語法關(guān)系層層迭代定位表格,并依據(jù)字母表依次定位要查找內(nèi)容的或許范圍。

這里的表格以Qthelp文檔為準。

?暫不介紹:

為了盡快完成本文檔的初步可運用的目的,許多在本程序中短暫用不到的窗口部件暫未

說明介紹,窗口部件介紹表格中會提到“暫不介紹”,但是協(xié)助限制器,屬性,值都是完全

展示在表格中。

?附加的例題格式說明:

例子是經(jīng)過試驗得出的結(jié)論,用C語言的注釋方式添加到相應的樣式代碼后面,當然你

的文件(.CSS)同樣滿意這個注釋方式。

/*注釋內(nèi)容*/

/*imagosForExample:cxamplcforXXXOOO.png*/實例圖片

?如何做試驗:

Qt源碼bin書目下的designer,exe,運行/拖入控件/右鍵/變更樣式表/應用;

QtCreator也可以。

?遇到問題請盡快聯(lián)系作者

2.背景介紹:

Qt為圖形界面應用程序供應一個完整的C++應用程序開發(fā)框架。

Qt的樣式表主要是受到CSS的啟發(fā),通過調(diào)用QWidget::setStyleSheet()或

QApplication::setStyleSheet(),你可以為一個獨立的子部件、整個窗口,甚至是整個應用程序

指定一個樣式表。樣式表由影響窗II部件繪制的樣式規(guī)則組成。這些規(guī)則都是一般文本。由

于在運行時會解析樣式表,所以可以通過定制樣式表的方式來嘗試設(shè)計不同的Qt應用程序。

二、名詞說明:

1.選擇器(selector)

意思是:選擇特定的類,一般為一個可以定制樣式表的Qt類,全部可以作為選擇器的

Qt類都在五、樣式參照表:2.可以應用樣式表的窗口部件表=選擇器中列出,選擇器的格

式參照五、樣式參照表:1樣式選擇器類型表。

所謂的選擇器可以理解為CSS中的選擇器,他指定了一類部件進行設(shè)計。

2.協(xié)助限制器(sub-control)

協(xié)助限制器一詞是相對于選擇器存在的,可以理解為我們選擇了一個部件,例如一個

QCheckBox,B“運"4這個部件它分為兩個部分,文本部分和可以點擊的小窗

口的部分。而這個可點擊的小窗口部分我們要單獨的設(shè)置,就要再次分別出來,就須

^::indicator(QCheckBox有這個協(xié)助限制器)來設(shè)置,如下例題:

QCheckBox::indicator{

width:20px;

height:20px;

}

/*說明是在QCheckBox中的指示符(indicator)寬為20px,height為20px。*/

協(xié)助限制器是用::雙冒號進行指定。

假如沒有::indicator那么我們這個小例子將是對整個QCheckBox設(shè)置的,運用了協(xié)助限制器

的時候就自動分別出這個小窗口,對小窗口進行設(shè)置。

不同的選擇器有不同的協(xié)助限制器,具體可查看五、樣式表參照表:3.協(xié)助限制器列表

中具體介紹相應的協(xié)助限制器在不同的類中應用,具體說明在類中的什么位置

3.狀態(tài)(pseudo-states)

除了協(xié)助限制器對一個部件的分別,樣式表還可以依據(jù)窗口部件的各個狀態(tài)來設(shè)置窗口。

例如hover表示鼠標劃過時的狀態(tài),例子如下:

QCheckBox:hover{

color:red;

)

/*例子說明只有當鼠標滑過狂選框文本時變?yōu)閞ed*/

狀態(tài)是用:冒號進行區(qū)分每一個狀態(tài)。

更具體的狀態(tài)列表在五、樣式表參照表:3狀態(tài)列表中杳找

狀態(tài)可以多個一起運用,也可以和協(xié)助限制器一起運用,這樣設(shè)置窗口部件的時候分的會更

加具體。

如下小例子:

QCheckBox:hover,QCheckBox:checked{

colorired;

)

QPushButton::hover{

color:red;

)

4.屬性

它是一個窗口部件所固有的特征、性質(zhì),每一個窗口部件都會有屬于他們自己的屬性。

如前面做的小例子中我們始終未曾提過color,width,height等。組合多個屬性同時運用設(shè)計出

多種效果。五、樣式表參照表:4屬性列表查找有更多的具體介紹。

5.值

是屬性:后面跟隨的一組數(shù)字,顏色或者是一個bool類型等這些我們稱它為值,這些

值確定了窗口部件的最終的展示效果。

查看值的表達方式

五、樣式表參照表:4值列表

6.邏輯否(!)

有時候我們在設(shè)置某種狀態(tài)的屬性時,希望同時在某些非(!)的狀態(tài)下設(shè)置,這個時候

我們就要用(!)來選擇某種狀態(tài),比如!checked>!has-children(沒有子書目)等等。

7.盒模型(TheBoxModel)

這個模式指定了4個影響布局的矩形,從而繪制一個自定義的窗口部件。

l.Contentrectangle是最里面的矩形,它繪制窗口部件內(nèi)容(如文字,圖片)的地方。

2.paddingrectangle包圍contentrectangle。它負責由padding屬性指定填充操作。主要是窗

口部件內(nèi)容及邊緣線(border)之間的空隙,它可以用top,right,bottom和left設(shè)置它的大小。

3.borderrectangle包圍paddingrectangle。它為邊界預留空間??梢哉J為是窗口的外框線。

下面講的分割圖形的方法中把border當做是一個區(qū)域來理解的。參考四、高級應用:九宮

格分割法

4.marginrectangle最外面的矩形,他包圍borderrectangle,負責指定的邊緣空白區(qū)域,主

要是負責及其他的窗口部件的距離。

假如沒有指定他們四個,則默認是四個重合在一起的。

如圖:

marginicctaunglc

8.角弧度

窗口部件四個角弧度。radius設(shè)置角的弧度,inborder-radius:4px;

角的弧度是4px。

9.背景色和前景色

部件的前景色用于繪制窗口部件上面的文本,可以通過color■屬性指定。

背景色用于繪制窗口部件的填充矩形,可以通過background-color屬性指定。

背景圖片運用background-image屬性定義,它用于繪制由background-origin指定在盒模式

中四個區(qū)域的圖片起先顯示的起點位置。背景圖片在盒模式域內(nèi)的對齊和平鋪方式可以通過

background-position和background-repeat屬性指定。

假如指定的背景圖片具有alpha通道(透亮效果),通過background-color指定的顏色將

會透過透亮區(qū)域。在background-color屬性中有介紹。

10.(#)

指定某一個按鈕,#號后面是指定類的對象名。要知道代碼才能運用。

三、語法介紹及問題解決:

1.語法

?選擇器{

屬性:值;

)

QPushButton{

color:red;

}

?選擇器:狀態(tài){

屬性:值;

)

QPushButton:hover{

color:red;

)

?選擇器::協(xié)助限制器{

屬性:值;

)

QCheckBox::indicator(

color:red;

)

?選擇器::協(xié)助限制器,選擇器::協(xié)助限制器(

屬性:值;

)

QTabBar::tab:selected,QTabBar::tab:hover{

background:qlineargradient(xl:0,yl:0,x2:0,y2:1,

stop:0#fafafa,stop:0.4#f4f4f4,

stop:0.5#e7e7e7,stop:1.0ttfafafa);

)

?選擇器:狀態(tài),選擇器:狀態(tài){

屬性:值;

)

QPushButton:hover,QPushButton:pressed{

color:red;

)

?選擇器,選擇器,選擇器{

屬性:值;

)

QLineEdit,QPushButton,QCheckBox{

color:red;

)

你可以隨意的組合,當然這只是簡潔的組合,還有更加困難的組合。

1.可以先查看一下選擇器的表達方式,考慮一下是只對一個類進行操作還是,對整個界

面操作,細致閱讀整個表格1.樣式選擇器類型表確定應用哪種樣式表。

2.選擇器的格式確定后,就要確定你要所要針對的具體的類型,那么就參照2.可以應

用樣式表的窗口部件。

3.之后就查看你所要應對的選擇器里的部分進行設(shè)置,就要再去查看協(xié)助限制器。

4.再分的細一點,搞清晰一個窗I」部件分為幾個狀態(tài),鼠標劃入,點擊,關(guān)閉...

他們確定了你所要設(shè)置狀態(tài)的屬性設(shè)置。

5.定位了前面的,就要變更他的特性了,也就是進行屬性設(shè)置,查找屬性表,對應屬性

表超找對應的值表,也有可能還要通過值表的迭代(值的值還須要一個方式表達。)最終知

道這個值是數(shù)字,還是一個顏色,或者是一個bool類型,抑或是其他的關(guān)鍵詞(如padcing、

content...)Q細致閱讀他們之間的關(guān)系。

2.遇到問題

或許你已經(jīng)組合了許多的樣式表,但是有時候你會發(fā)覺,有時候有些屬性值不起作用,

或者說圖像變形,并不是你所要看到的效果,不要焦急。

1.查看一下你的語法是否正確,假如你保證確保無誤的話,那么就想一想,是否是在構(gòu)建這

個窗II控件之前進行設(shè)置的,這個會影響到你的屬性是否被讀入。參考六、附屬例題說明:

32.定制QTool查看是否被其他的屬性覆蓋。當一個屬性被具有同一選擇器的幾個規(guī)則設(shè)置

時,那么只有最終一個規(guī)則起作用(這是一個難點)。

2.查看是否有相應的關(guān)聯(lián)的屬性已被設(shè)為bool=K

3.圖片無法顯示:查看路徑是否正確在Qt中是“/"代替window下的"\",運用相對路徑,

本應用程序的相對路徑(是相應程序讀取這個樣式css文件),當然你也可以寫肯定路徑的

方式讀取圖片,但是路徑這個方法是不提倡的。

4.大小變更的窗口控件是否背景圖片選擇了bordor-imagoo具體參考四、高級應用及六、

附屬例題說明:34.QPushButton及image

四、高級應用:

1.九宮格分割法:

之所以叫做九宮格分割法是源于,把邊界圖分為3X3的小格,當填充窗口部件時如圖A,4

個先保持不變,如圖B,

ABC

DEF

GHT

A:原始圖

ABC

DEF

CHT

B:結(jié)果圖

其他的5個格子被拉伸或者平鋪填充可用的空間v

運用border-image屬性可以指定各個邊界圖,他要求指定一個圖像文件名和定義9個格子的

4條“切線二切線用到上、右、下和左邊緣的距離定義。Border.png作為邊界圖,距離上、

右、下和左的切線為4、8、12和16應當如下定義:

border-image:url(boder.png)481216;

但運用邊界圖時,必需顯示地設(shè)置border-image屬性。一般狀況下,border-width應當及切

線的位置一樣;否則,為了及border-width相符合,帶上的格子將被拉伸或者縮短。對

border.png應當這樣設(shè)置指定他的四個邊框的寬度:

border-width:4px8px12px16px;

這樣才能把剛才切割的四個角的圖片完全的放置到border中當做border區(qū)域的背景。

2.漸變器

Qt支持三種漸變器查看例題5.漸變器

1.線性漸變(qlineargradient):連接這兩點的線上有一系列的顏色斷點。兩個限制點之間的

不同位置指定不同的顏色。位置用0和1之間的浮點數(shù)來確定,0對應著第一個限制點,1

對應著其次個限制點。兩個指定斷點之間的顏色由線性插值得出。

2.輻射漸變(qradialgradient):有一個中心點(xn,yn),半徑r,一個焦點(xf.yf)以及顏

色斷點定義。

中心點和半徑定義一個圓,顏色從焦點向外擴散,焦點可以是中心點或者圓內(nèi)的其它點。

3.梯形漸變(qconicalgradiant):由一個中心點(xn,yn)和一個角度a定義。顏色在中心點

四周像鐘表的秒針掃過一樣擴散。

五、樣式表參照表:

1.樣式選擇器類型表

選擇器實例可以匹配的窗口部件

全局對象*對全局的隨意窗口部件

類型QDial給定類的實例,包括這個類的子類

類.QDial給定類的實例,不包括子類

標識QDial#ageDial給定對象名稱的窗口(ageDial表示對象的名字,在代碼

中可知)

Qt屬性QDial[v="。”]為某些屬性賦值的窗口,表示當Y(屬性)為0(false)

或者為1(true)的時候

子對象QFrame>QDial給定窗口部件的干脆子類

子孫對象QFrameQDial給定窗口部件的子孫窗口部件

2.可以應用樣式表的窗口部件表=選擇器

部件可應用的樣式

QAbstractScrollArea1.支持盒模型。

2.全部QAbstractScrollArea(QAbstrac11temView、

Ttttttttttttttt▲QGraphicsView、QMdiArea、QPlainTextEdit、QScrollArea、

ttttttttttttttt.QTextEdit)的派生類,包括QTextEdit和QAbstractltemView(帶

ttttttttttttttt-

tttttttttttttttitem的類),用background-attachment屬性支持背景可滾動的,設(shè)

置background-attachment屬性為fixed則供應一個

background-image背景圖片不跟隨滾動條滾動,反則設(shè)置

上圖為一個QTextEdiLtbackground-attachment屬性為scroll則是背景圖片可以跟隨滾動

文字不能完全顯示而自條滾動.

動添加的滾動條3.具體看例:6定制QAbstractScrollAreao

QCheckBox1.支持盒模型,

2.可以用::indicator協(xié)助限制器設(shè)置check指示符(一個可以選

thisisacheckbox

擇的小方塊),默認時,check指示符放置在部件矩形內(nèi)容的左上角

處。

3.spacing屬性指定check指示符和文本(右側(cè)的描述文字)的距

離。

4.具體看例:7定制QCheckBox。

QColumnView1.可以被image屬性限制樣式,arrow(箭頭)指示符可以

被::left-arrow和::right-arrow協(xié)助限制器樣式限制。

QComboBox1.支持盒模型。

2.下拉按鈕(drop-downbutton)樣式可以被::drop-down協(xié)助限制

▼器設(shè)置,默認狀況下,下拉按鈕填充矩形部件的右上側(cè),下拉按鈕

的箭頭標記(arrowmark)通過徉式::down-arrow協(xié)助限制器限制。

默認的狀況下,箭頭是位于下拉按鈕的中間位置。

3.具體看例:8定制QComboBox。

QDateEdit具體看例:24定制QSpinBox.

2WO-l-l▼

QEateTimeEdit具體看例:24定制QSpinBox.

i>000-1-10:00:00▼

QDialog1.只支持backgroundsbackground-clip和background-origin屬

性。

Warning:確保我們定義了宏Q_OBJECT在我們定制的部件里。

L*JG-

QDialogButtonBox可以用button-layout屬性變更按鈕的布局。

上圖QDialog對話框中

的按鈕

QDockWidget1.當浮動窗口??康臅r候,支持標題欄和標題欄按鈕。

2.border屬性可以限制浮動窗口的i力框。

3."title協(xié)助限制器可以定制標題欄樣式。

15svwfw

.%疝證他@動核田和4.::title協(xié)助限制器上的::close-button限制浮動窗口關(guān)閉按

關(guān)例■[笫

Add-;<

鈕屬性,float-button浮動限制按鈕。

g.TZtn,c(K?uriMl?(

44QTM<I4.?5.當標題欄可視的時候,:vertical狀態(tài)被設(shè)置,當然這個狀態(tài)取

*?c?^?r0Tg

?<?*??¥*如?‘?**?_____________r

決于浮動窗口的3種狀態(tài)設(shè)置。即:floatable:closable

和:movable狀態(tài)。

6.Note:用QMinWindow::separator去設(shè)計大小處理。

7.Warning:設(shè)置的樣式不能應用于未??康拇翱谏?。

8.具體看例,9定制QDockWidgot”

QDoubleSpinBox具體看例:24定制QSpinBox.

QFrame1.支持盒模式。

2.自Qt版本4.3起先,在QLabel上設(shè)置一個樣式表將自動設(shè)置

QFrame::frameStyle屬性到QFrame::StyledPanel<.

3.具體看例:10定制QFrame。

QGroupBox1.支持盒模式。

2.協(xié)助限制器設(shè)置標題樣式(圖片中“GroupBox”字樣)。

默認的狀況下,標題位置取決于QGroupBox::textAlignment.

3.在可點擊選擇的狀況下,標題包含check指示符用::indicator

協(xié)助限制器設(shè)置。

4.Spacing屬性是限制check指示符及文本描述的空間。

5.具體看例:11定制QGroupBoxo

QHeaderView1.支持盒模式。

2.::section協(xié)助限制器設(shè)置標題視圖,section協(xié)助限制器支

斯座列臉列*

持:middle、:first、:last、:only-one、

next-selected.:previous-selected:selected和:checked

狀態(tài)。

3.::up-arrow和::down-arrow設(shè)置排序的樣式。

4.具體看例:15定制HeaderView。

QLabel1.支持盒模式。

2.不支持鼠標懸停狀態(tài)(鼠標經(jīng)過的時候)。

thisisaQLabel

3.自Qt版本4.3起先,在QLabel上設(shè)置一個樣式表將自動設(shè)置

QFrame::frameStyle屬性到QFrame::StyledPanel。

4.具體看例:10定制QFrame(QLabel類繼承自QFrame)。

QLineEdit1.支持盒模式。

2.selection-color和selection-background-color分別設(shè)置選

yx

擇時的背景顏色和和前景色。

3.lineedit-password-character的屬性設(shè)置密碼類型。

4.具體看例:13定制QLineEdit。

QListView1.支持盒模式。

2.當表格交替顏色是可以選擇的,表格交替顏色設(shè)置用

alternate-background-color屬性設(shè)置。

3.選擇的顏色selection-color和selection-background-color

限制選擇顏色和選擇的背景顏色。

4.show-decoration-selected屬性限制選擇行為。

5.::item更加細致的限制QListView的iterns1,

6.具體看例:6定制QAbstractScrollAreao

具體看例:14定制QListVicwo

QListWidget具體看例:14定制QListViewo

QMainWindow1.支持樣式分割器。

(主窗口)2.在QMainWindow用分割器時,QDockWidget::separator協(xié)助

限制器來設(shè)置樣式。

2.具體看例:15定制QMainWindowo

QMenu1.支持盒模式。

(菜單)2.::item協(xié)助限制器設(shè)置每一個items,除此之外還支持狀態(tài)

如:selected、:defaults:exclusive和non-exclusive狀態(tài)。

3.::indicator協(xié)助限制器設(shè)置菜單的可點擊的屬性。

4.菜單分隔風格樣式由::separator協(xié)助限制器設(shè)置。

5.right-arrow和left-arrow設(shè)置子書目箭頭是向右還是向左。

6.::scroller設(shè)置滾動條。

7.::tearoff設(shè)置tear-off(拆卸下來成為獨立的窗口)

8.具體看例:16定制QMenu。

QMenuBar1.支持盒模式。

(菜單欄)2.spacing屬性設(shè)置兩個item的距離。

3.::item協(xié)助限制器限制每一個items的樣式。

4.具體看例:17定制QMenuBar。

QMssageBoxMessagebox-text-interaction-flags屬性用來修改消息框中的文

(彈出來的報告錯處,本

提示的對話框)

QProgressBar1.支持盒模式。

2.::chunk協(xié)助限制器設(shè)置塊狀結(jié)構(gòu)樣式(進度條里面的顏色設(shè)置

幺]

24可能是一段一段的)的進度。條塊是顯示在盒模時的content中。

■■■24%3.進度條中假如顯示文字,text-align屬性設(shè)置進度條中文字位

置。

4.indeterminate不確定狀態(tài)設(shè)置。

具體看例:18定制QProgressBaro

QPushButton1.支持盒模式。

2.:default、:flat(外框是否突起)、:checked狀態(tài)。

PushButton3.當按鈕在菜單欄里時,用::menu-indicator協(xié)助限制器設(shè)置菜

「確定]取消_單欄的風格。

4.用:open和:closed定制是否可點擊的按鈕。

5.例如:QPushButton{

background-color:red;border:none;

6.具體看例:19定制QPushButtono

QRadioButton1.支持盒模式。

2.可以用::indicator協(xié)助限制器設(shè)置chock指示符(一個可以選

擇的小圓圈),默認時,check指示符放置在矩形內(nèi)容的左邊。

thisis&ridiobutton

e3.spacing屬性指定check指示符和文本(右側(cè)的描述文字)的距

離。

4.具體看例:20定制QRadioButton。

QScrollBar1.支持盒模式。

▲2.控件上盒模式橫縱的content的內(nèi)容依靠于槽上的滑動器

(hangle)的移動。

3.QScrollBar的范圍(長或者寬由scroll的方向確定)由width

門?和height設(shè)置,用:horizontal和:vertical設(shè)置方向。

4."handle(句柄)協(xié)助限制器寬或者高(設(shè)置min-width或者

min-height)的最小寬度和最小高度,取決于它的方向。

5.::add-line設(shè)置添加內(nèi)容的按鈕樣式。依靠于箭頭的方

向。::right-arrow和::down-arrow,箭頭默認是在add-line的盒

模式contents的中間位置。

6.::sub-line設(shè)置削減內(nèi)容的按鈕樣式。::left-arrow

和::up-arrow,箭頭在按鈕的中間位置。

7.::sub削減頁和add增加頁。

.具體看例:21定制QScrollBar?

QSizeGrip1.支持width、height>image屬性。

(通過它可以變更它所2.具體看例:22定制QSizeGripo

在頂級窗口的大小,在

頂級窗口的右下角)

QSlider1.支持盒模式。

2.對于橫向,min-width和height屬性必需供應。

3.對于縱向,min-height和width屬性必需供應。。

;3::::::'::4.-groove設(shè)置槽,一般狀況下槽是默認在盒模式的content中,

控件可以滑動的handle(句柄;用::handle協(xié)助限制器設(shè)置。句柄在

槽上移動,在盒模式中的content。

:EZ)5.具體看例:23定制QSlider。

QSpinBox1.支持盒模式。

2.::up-button和up-arrow限制上面的按鈕和按鈕上箭頭。

|0±j

3.::down-button和down-arrow限制下面的按鈕和按鈕上的箭頭。

默認箭頭在按鈕的中間位置。

具體看例:24定制QSpinBoXo

QSplitter1.支持盒模式。

(界面分別器)2.::handle設(shè)置分割器可移動句柄handle.

一個界面被分為兩個具體看例:25定制QSplittero

QStatusBar1.只有background屬性起作用,每一個items用::items設(shè)置。

(狀態(tài)欄)2.具體看例:26定制QStatusBar。

QTabBar1.每一個tab頁用::tab設(shè)置樣式,關(guān)閉用::close-button,tab

頁支持only-one、:fist、:l&st>middle、:privious-selected、

:next-seleced>:selected狀態(tài)。

2.:top、:left、:right、:bottom狀態(tài)取決于tabs在部件的方向。

3.選擇重疊tabs狀態(tài)(這個狀態(tài)時表示在許多tab的時候,點擊一

個tab頁為當前顯示時,就表示這個tab突出覆蓋了左右tab的n

個px)是利用負margins(盒模式中的margin)或者是相對位置來

限制。

4.當tab許多個的時候,有時候tabbar不能把它完全顯示出來,就

會在tabbar上顯示可以左右調(diào)整tab頁的按鈕,這個校鈕為

QToolButton,定制這個QToolButton的寬度用::scroller協(xié)助限

制器定制。

5.::tear定制tear指示器的洋式。

6.QTabBar的tab方向用alignment(topbottomleftright|

center)設(shè)置。

6.變更QTabWidget的QTabBar方向用tab-bar協(xié)助限制器。

7.具體看例:27定制QTabWidget和QTabBaro

QTabWidget1.用::pane設(shè)置頁面的外框。

2.::left-corner和::right-corner設(shè)置左側(cè)角落和右側(cè)角落。

3.它的tab位置通常用::tab-bar設(shè)置,默認是QWindowsStyle的

風格。

4.:top,:left,:right,:bottom選擇tab上、左、下和右的方位。

5.具體看例:27定制QTabWidget和QTabBar(>

QTableView1.支持盒模式。

2.alternatingrowcolors可用的時候我們可以運用屬性

alternate-background-color限制交替的表格背景顏色。

3.selection-color和seiection-background-co1or屬性設(shè)置選

擇item的前景顏色和背景顏色。

4.在QTableView中控件可以『乍為一個QAbstractButton和可以用

QTableViewQTableCorncrButton::section設(shè)置樣式。

5.表格顏色gridline-coloro

6.參看QAbsractScrollArea發(fā)置背景backgrounds。

具體看例:28定制QTableView.

QTableWidget

1降到款座列-

默建行

臉行

做行

據(jù)建行

WBfl1

J~?

1具體看例:28定制QTablcVicwo

QTextEdit1.支持盒模式。

(一個文本編輯器)2.selection-color和select!on-background-color確定它的文

本顏色和背景顏色。

具體看例:6定制Q.AbstractScrollAreao

QTimeEdit具體看例:24定制QSpinBoxo

0:00:00▼

QToolBar1.支持盒模式。

(工具欄)2.:top,:right,:bottom工具欄的位置,是在主窗口的上,

左,右,下狀態(tài)設(shè)置屬性。

3.:first,:last,:middle,:only-one選擇了工具欄中第一組按

鈕。

4.工具欄的分隔符是由::separator限制。

5.可以限制工具欄可移動::handle選擇器選擇它并變更樣式。

6.具體看例:29定制QToolBar。

QToolButton1.支持盒模式。

(工具欄按鈕)2.假如QToolBox有一個菜單,::menu-indicator來選擇它的指示

符(就是可以移動工具欄的句柄,可以參考WPS的新建工具欄)。

3.當QToolBar在QToolButton::MenuButtonPopup模式

下,::menu-button限制這個菜單按鈕,::memi-arrow是限制這個

按鈕的箭頭,默認的狀況下會放置在按鈕上content位置。

4.當QToolBar顯示箭頭時候::up-arrow,::down-arrow,

::left-arrowand::right-arrow可以被用到。

5.具體看例:30定制QToolButton0

QToolBox1.支持盒模式。

2.::tab協(xié)助限制器設(shè)置tab,tab支持:only-one、:first、:、last:、

猶如好友QQ模式middle:、previous-selected:next-selected>:selected狀態(tài)。

QToolTip1.支持盒模式。

(鼠標劃過時的提示2.支持opacity(不透亮)屬性。

語)具體看例:10定制QFramc(QToolTip類繼承自QFramc)

31定制QToolTipo

QTreeView1.支持盒模式。

2.當alternatingrowcolors(行交替著不同的顏色)是可用的

時候,可以通過alternate-background-color屬性設(shè)置它交替顏

色。

3.selection-color屬性和selection-background-color屬性設(shè)置

選擇item的前景顏色和背景顏色。

4.show-decoration-selected設(shè)置選擇行為屬性。

5.分支協(xié)助限制器::branch支持:open,:closed,:has-sibling

and:has-chiIdren狀態(tài)°

6.::item協(xié)助限制器更具體的限制QTreeView的items。

7.看QAbsractScrollArca關(guān)7可滾動背景的描述。

具體看例:32定制QTreeViewo

QTreeWidget具體看例:32定制QTreeViewo

:黜1

y8踽目

耀磊

QWidget1.只支持background,background-clip和background-origin

屬性。

2.假如你的類是QWidget的子類,你須要重寫paintEvent函數(shù)如下:

voidCustomWidget::paintEvent(QPaintEvent*)

(

QStyleOptionopt;

opt.init(this);

QPainterp(this);

style()->drawPrimitive(QStyle::PE_Widget,&opt,&p,

this);

)

/*假如沒有樣式表設(shè)置,那么它是什么作用都不起的*/

Warning:確保我們定義了宏QOBJECT在我們定制的部件里,

3.協(xié)助限制器列表

協(xié)助限制器說明

::add-line在QScrollBar中添加一行的按鈕。

::add在QScrollBar中添加頁的按鈕。

::branchQTreeView的分支。

::chunkQProgressBar的進度條里的塊(里面的進度條可以變成一塊一塊的增

力口,而不是整體都是一種顏色)。

::colse-buttonQDockWidget和QTabBar標題欄上的關(guān)閉按鈕。

::corner在QAbstractScrollArea兩個滾動條之間的位置。

::drwn-arrowQCoriboBox、QHeaderView(排序時須要)、QScrollBar、QSpinBox的向下

箭頭。

::down-buttonQScrollBar、QSpinBox的向下按鈕。

::drop-downQComboBox綻開時。

::float-buttonQDockWidget標題欄上的浮動按鈕,

::grooveQSlider的槽。

::indicatorQAbstractitemView>QCheckBox、QRadioButton>可點擊的QMenu的

item、可點擊的QGroupBox的指示符。

::handleQScrollBar、QSplitter、QSlider的滑塊。

::iconQAbstractitemView和QMenu的圖標。

::itemQAbstractitemView>QMenuBar>QMenu>QStatusBar的單獨的一項。

::left-arrowQScrollBar的向左的箭頭。

::left-cornerQTabWidget的左側(cè)。

::menu-arrow菜單里QToolButton箭頭。

::menu-button工具欄上的按鈕。

::menu-indicator菜單里的QPushButton指示符。

::right-arrowQMenu或者是QScrollBar的右側(cè)箭頭。

::paneQTabWidget去掉標題的框架。

::right-cornerQTabWidget的右側(cè)。

::scrollerQMenu和QTabBar因為界面大小布局左右調(diào)試的滾動按鈕。

:;sectionQHeaderView的表頭橫向和縱向。

::separatorQMainWindow和QMenu的分別器(就是一個主窗11被分割成幾個小

的區(qū)域的線,QMenu里是item的分別線)。

::sub-lineQScrollBar內(nèi)容削減方向的按鈕。

::subQScrollBar削減一頁的按鈕,在滑塊及削減一行sub-line之間。

::tabQTabBar和QToolBox的一個頁選項。

::tab-bar一個QTabWidget的tab按鈕,設(shè)置tabs一般用::tab。

::tearTabBar的指示符

::tearoffQMenu的指示符

::textQAbstractltemVIew的內(nèi)容。

::titleQGroupBox和QDockWidget的標題。

::up-arrowQHeaderView(排序時)、QScrollBar>QSpinBox向上按鈕箭頭。

::up-buttonQSpinBox的向上按鈕。

4.狀態(tài)列表

狀態(tài)說明

:active當前活動的窗口。

:adjoins-itemQTreeView的一個branch存在毗鄰下一個及自己不是兄弟項目的

項。

:alternate當QAstractitemView的QAstractitemView::

altcrnatingRowColors。的屬性設(shè)置為true時,行之間背景顏色交

替顏色變更,

:bottom在item的下面,例如QTabBar的tab按鈕在下面。

:checked按鈕已選中。

:closableiterns是可以關(guān)閉的,例如QDcckWidget有一個QDockWidget::

DcckWidgetClosable的功能。

:closed(open相對的)窗口位于關(guān)閉或者銷毀的狀態(tài),例如QTreeView沒

有打開時的狀態(tài)

:default默認的狀態(tài)。

:disabled禁用窗口部件

:editabledQComboBox可以編輯的

:edit-focus那種可編輯的控件,比如文本框,當它正在編輯的時候,就是

OStyle::StateHasEditFocus狀態(tài)。

:enabled啟用窗口部件。

:exclusive表示按鈕組設(shè)置為單選,只能選擇一個的狀態(tài)。例如菜單欄的選項。

:first部件的第一個,例如QTabBar的第一個tab

:flat沒有突起的部件。

:floatable部件是可浮動,例如QDockWidget。

:focus窗口部件有輸入焦點。

:has-childrenItem有子書目的,例如QTreeViewo

:has-siblings有兄弟書目的,例如QTreeViewo

:horizontal部件是橫向的。

:hover鼠標劃過窗口部件時的狀態(tài)。

:indeterminate按鈕部分被選中的狀態(tài)。

:last最終一個,例如:QTabBar的最終一個tab。

:left位于左面,例如QTabBar的tab位于左面的那個。

:maximized最大化狀態(tài)。

:middle在列表中中間位置,例如QTabBar的tab不是最終一個也不是第一

個的。

:minimized最小化的時候。

:movable這個部件可以移動,例如QDockWidgeto

:no-frame這個部件是沒有frame的,例如QLineEdit和QSpinBoxo

:non-exclusive不能單選的,菜單來就是單選的。

:off

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論