|
1、概述
Qt 允許程序員不通過(guò)任何設計工具,以純粹的 C++代碼來(lái)設計一個(gè)程序。但是更多的
程序員更加習慣于在一個(gè)可視化的環(huán)境中來(lái)設計程序,尤其是在界面設計的時(shí)候。這是因為
這種設計方式更加符合人類(lèi)思考的習慣,也比書(shū)寫(xiě)代碼要快速的多。
Qt 也提供了這樣一個(gè)可視化的界面設計工具:Qt 設計器(Qt Designer)。其開(kāi)始界面
如上圖所示。Qt 設計器可以用來(lái)開(kāi)發(fā)一個(gè)應用程序全部或者部分的界面組件。以 Qt 設計器
生成的界面組件最終被變成 C++代碼,因此 Qt 設計器可以被用在一個(gè)傳統的工具鏈中,并
且它是編譯器無(wú)關(guān)的。
在不同的平臺上啟動(dòng) Qt Designer 的方式有一定差別。在 Windows 環(huán)境下你可以在“開(kāi)
始->程序->Qt”這個(gè)組件中找到 Qt Designer 的圖標并點(diǎn)擊;在 Unix 環(huán)境下,在命令行模式
下輸入命令: “designer”;在 Mac Os 下,在 X Finder 下雙擊 Designer 圖標。
默認情況下,Qt Designer 的用戶(hù)界面是由幾個(gè)頂級的窗口共同組成的。如果你更習慣
于一個(gè) MDI-style 的界面(由一個(gè)頂級窗口和幾個(gè)子窗口組成的界面),可以在菜單 Edit->User
Interface Mode 中選擇 Docked Window 來(lái)切換界面。上圖顯示的就是 MDI-style 的界面風(fēng)格。
2、開(kāi)始學(xué)習
在這個(gè)小節中,我們將使用 Qt Designer 來(lái)生成一個(gè)對話(huà)框: Go-to-cell。對話(huà)框如下圖
所示。
不管我們是使用 Qt Designer 還是編碼來(lái)實(shí)現一個(gè)對話(huà)框,都包括以下相同的步驟:
1)、創(chuàng )建并初始化子窗口部件。
2)、將子窗口部件放置到布局當中。
3)、對 Tab 的順序進(jìn)行設置。
4)、放置信號和槽的連接。
5)、完成對話(huà)框的通用槽的功能。
現在開(kāi)始工作。首先在 Qt Designer 的菜單中選擇“File->New Form”。程序將彈出一
個(gè)窗口如下:
可以看到在窗口左上方有一個(gè)“templates\forms”的菜單,下面有四個(gè)可供選擇的模板。
第一個(gè)和第二個(gè)都是對話(huà)框,區別在于對話(huà)框中按鈕的位置不同。第三個(gè)是主窗口,第四
個(gè)是窗口部件。本例中我們需要選擇第四個(gè)選項(Widget)。 現在你應該可以看到 Qt Designer
為你生成了一個(gè)窗口,標題欄是“Untitled”(也許你覺(jué)得第一個(gè)模板更加適合我們的例子,
不過(guò),在這里,我們將手動(dòng)添加“OK”和“Cancel”這兩個(gè)按鈕)。
我們按照上面講過(guò)的順序來(lái)設計這個(gè)窗口。首先需要生成子窗口部件并將它們放置
在工作臺上。在 Qt Designer 工作界面的左側,我們可以看到很多程序設計經(jīng)常用到的窗口
部件。如果你需要它們中的那一個(gè),用鼠標把它拖到工作臺上就可以了。我們在菜單“Display
Widgets”中選擇一個(gè)“Label”,在菜單“Input Widgets”中選擇一個(gè)“Line Edit”,在菜單
“Spacers”中選擇一個(gè)“Horizontal Spacer”(這個(gè)空白組件在最終形成的窗口中是不可見(jiàn)的,
在 Qt Designer 中,空白組件的樣子就像是一個(gè)藍色的彈簧),在菜單“Buttons”中選擇兩個(gè)
“Push Button”。按照下圖的位置,將它們擺放起來(lái)。
你可以看到,我們的工作界面顯的太大了一些,可以用鼠標拉住邊框讓它改變大小,
直到你滿(mǎn)意為止。一個(gè)類(lèi)似下圖的組件是不是已經(jīng)出現了?記住不要花費太多的時(shí)間來(lái)擺放
這些窗口部件的位置,只要大概類(lèi)似就可以了,因為他們并不是不可調整的。Qt 的布局管
理器將會(huì )對他們的位置和大小自動(dòng)進(jìn)行一些優(yōu)化。
現在我們已經(jīng)創(chuàng )建了這些子窗口部件,并把他們放置在了合適的位置,接下來(lái)要做
的就是初始化他們。這需要設定這些子窗口的屬性。在 Qt Designer 工作界面的右側也同樣
有一些窗口,這些就是屬性窗口。 可以在這些窗口中找到所有部件需要設置的屬性,并更改
它們,就可以達到我們的目的了。
1)、點(diǎn)擊 TextLabel,確認它的“objectName”屬性是“l(fā)abel”,然后將它的“text”屬
性設置為“&Cell Location”。
2)、點(diǎn)擊 line editor (窗口中的空白編輯框),確認它的“objectName”屬性是“l(fā)ineEdit”。
3)、點(diǎn)擊第一個(gè)按鈕(左側),將其“objectName”屬性設置為“OKButton”,“enable”
屬性設置為“false”,“text”屬性設置為“OK”,“default”屬性設置為“true”。
4)、點(diǎn)擊第二個(gè)按鈕(右側),將其“objectName”屬性設置為“cancelButton”,“text”
屬性設置為“Cancel”。
5)、點(diǎn)擊工作平臺的背景,這樣我們可以選擇整個(gè)的界面。這也是一個(gè)窗口,也擁有
自己的屬性。我們把它的“objectName”屬性設置為“GoToCellDialog”,“windowtTitle”屬
性設置為“Go to Cell”。
完成后的 Form 變成了下圖的形式:
接下來(lái)我們給 Label 設置一個(gè)伙伴(buddy),在這個(gè)例子中, Label 的伙伴當然是后面
的字符編輯框 line editor。在 Qt Designer 的菜單中進(jìn)行選擇:Edit->Edit Buddies。這樣我們
進(jìn)入 Buddy 模式,可以設置子窗口的伙伴了。點(diǎn)擊 Label,Label 將會(huì )變成紅色的,同時(shí)出
現一條線(xiàn),將這條線(xiàn)拖拽到后面的 line editor 上,然后松開(kāi)。這時(shí)兩個(gè)窗口都將變成紅色的,
中間有一條紅線(xiàn)相連。移動(dòng)鼠標到別處并點(diǎn)擊,窗口將變成藍色的。這說(shuō)明我們已經(jīng)設置成
功了(如果設置錯誤,則可以用鼠標在連接窗口的線(xiàn)條上點(diǎn)擊,這時(shí)相連的窗口又會(huì )變成紅
色的,此時(shí)按 Delete 鍵就可以取消設置)。
技術(shù)交流可以加黃工QQ2685896890 |
|