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