窗口是指沒有父組件的組件语婴。(通常窗口含有邊框、標題欄,盡管可以通過適當?shù)拇翱跇酥緛韯?chuàng)建沒有這些裝飾的窗口)首有。在QT中,QMainWindow以及QDialog的若干子類是最常見的窗口類型枢劝。
在應(yīng)用程序中井联,窗口提供了構(gòu)建用戶界面的屏幕空間。窗口從視覺上將應(yīng)用程序彼此分開您旁,并且通常會提供一個窗口裝飾來允許用戶根據(jù)偏好來調(diào)整大小和位置烙常。窗口通常集成到桌面環(huán)境中,并在一定程度上由桌面環(huán)境提供的窗口管理系統(tǒng)進行管理鹤盒。例如蚕脏,應(yīng)用程序的選定窗口會顯示在任務(wù)欄中。
主侦锯、從窗口
任何一個沒有父組件的QWidget都會成為一個窗口蝗锥,在大部分操作系統(tǒng)中都會顯示在桌面的任務(wù)欄中。這在應(yīng)用程序中通常只適用于一個窗口率触,即主窗口
终议。
另外,一個有父組件的QWidget可以通過設(shè)置Qt:: window標志成為一個窗口。依賴于窗口管理系統(tǒng)穴张,這些從窗口
通常堆疊在它們各自的父窗口之上细燎,并且沒有它們自己的任務(wù)欄條目。
QMainWindow類在它的構(gòu)造函數(shù)中設(shè)置Qt:Window標志皂甘,因為它被設(shè)計成作為窗口使用玻驻,并且提供了子組件不需要的工具。
主窗口和對話框
應(yīng)用程序主窗口提供了創(chuàng)建應(yīng)用程序主用戶界面的框架偿枕,主窗口是通過繼承QMainWindow類來創(chuàng)建的璧瞬。QMainWindow有自己的布局,你可以添加菜單欄渐夸、工具欄嗤锉、可停靠小部件和狀態(tài)欄墓塌。中間區(qū)域可以是任何類型的QWidget瘟忱。
對話框窗口作為輔助窗口向用戶提供選項和選擇。對話框通過子類化QDialog來創(chuàng)建苫幢,使用組件和布局來實現(xiàn)用戶界面访诱。另外,Qt還提供了許多現(xiàn)成的標準對話框韩肝,可以用于執(zhí)行諸如文件或字體選擇等標準任務(wù)触菜。
主窗口和對話框都可以在Qt的可視化設(shè)計工具Qt Designer中創(chuàng)建。使用Qt Designer比手動編碼要快很多哀峻,并且可以很容易地驗證不同的設(shè)計思路玫氢。可視化地創(chuàng)建設(shè)計并且閱讀由uic
生成地代碼是學(xué)習(xí)Qt的一個好方式谜诫!
窗口幾何
QWidget提供了幾個函數(shù)來處理組件的幾何形狀漾峡。其中一些函數(shù)作用在純客戶區(qū)域上(即不包含邊框的窗口),另外一些包含了窗口邊框喻旷。這種區(qū)別在最常見的用法中是透明的生逸。
- 包含窗口邊框: x(), y(), frameGeometry(), pos(), move()
- 不含窗口邊框: geometry(), width(), height(), rect(), size()
注意,這種區(qū)別只對最頂層的組件裝飾有影響且预。對所有的子組件槽袄,框架幾何形狀跟組件的幾何形狀是一樣的。
下面圖片展示了應(yīng)用中的大多數(shù)方法: