轉載地址:http://blog.csdn.net/kanchuan1905/article/details/53762788
在Qt Quick的世界里,Window對象用於創建一個與操作系統相關的頂層窗口,包含了如Text, Rectangle, Image等元素。Window還有一個派生類,即大名鼎鼎的ApplicationWindow,也可以作為QML文檔的根對象。
上一篇文章,我們提到的使用QQuickView加載QML的方式,頂層窗口是由QQuickView創建的。
要使用Window對象,需要使用下面這行代碼來導入Window模塊:
import QtQuick.Window 2.2
1)Window對象可以創建一個新的頂層窗口來作為Qt Quick的活動場景,它會自動設置好窗口的基本屬性,如圖標、標題、系統按鈕。當然也可以撰寫QML代碼來設定窗口的屬性。下面來談談這些屬性。
Window在桌面上的位置,由x, y屬性決定,其大小由width,height屬性決定。除此之外,你還可以使用minimumWidth , minimumHeight來限制窗口的最小尺寸,使用maximumWidth, maximumHeight來限制窗口的最大尺。作為受窗口管理系統控制的一個窗口,其顯示狀態有:正常、最小化、最大化、全屏、隱藏。PC操作系統的窗口管理系統多數都支持鼠標拖動改變窗口的大小和位置。
Window對象的visibility屬性用來設置這個窗口的顯示狀態,可以取下列值:
Window. Windowed,窗口占屏幕的一部分,窗口管理系統支持同時顯示多窗口時才有效。
Window.Minimized,最小化到任務欄上的一個圖標。
Window.Maximized,最大化,占用任務欄之外的所有屏幕空間,標題欄依然顯示。
Window.FullScreen,全屏顯示,占用整個屏幕,標題欄隱藏。
Window.AutomaticVisibility,給Window一個默認的顯示狀態,它的實際值與平台實 現有關。
Window.Hidden, 隱藏,窗口不可見,與visible屬性的效果一樣。
窗口的隱藏、顯示由布爾類型的visible屬性控制,設置其為true則顯示窗口,為false隱藏窗口。
color屬性用來設置窗口的背景顏色,可以用“blue",“#RRGGBB ", Qt.rgba()等形式為其賦值;
opacity屬性用來設置窗口透明度,取值范圍是0一1.0;
title屬性用來設置窗口的標題,字符串類型;
activeFocusItem屬性類型是Item,保存窗口中擁有活動焦點的Item,可能為null。
contentOrientation屬性用來設置窗口的內容布局方向,可以取下列值:
Qt.PrimaryOrientation,使用顯示設備的首選方向。
Qt.LandscapeOrientation,橫屏。
Qt.PortraitOrientation,豎屏。
Qt.InvertedLandscapeOrientation,相對於橫屏模式,旋轉了180°。
Qt.InvertedPortraitOrientation,相對於豎屏模式,旋轉了180°。
一個Qt Quick應用可能會有多個窗口,窗口之間的關系由modality(模態)屬性決定,一個模態的窗口會阻止其他窗口獲取輸入事件。modality可以取下列值:
a) Qt.NonModal,非模態。
b) Qt. WindowModal ,窗口級別的模態,設置此屬性的窗口只針對某一個窗口是模態的,如子窗口相對父窗口是模態的,相對同一應用中的其他非父窗口則沒有模態效果。
c) Qt.ApplicationModal,應用級別的模態,設置此屬性的窗口會阻止同一應用的其他窗口獲取輸入事件。
Window的flags屬性就是用來設置窗口標志位的,取值與Qt C++一樣,不過要通過Qt.Widget, Qt.Popup這種形式來使用。
Window的data屬性為默認屬性,類型是list<Object>。
2)ApplicationWindow是Window的派生類,使用它需要使用下面的語句來引入Controls模塊:
import QtQuick .Controls 1.2
ApplicationWindow有點兒像QMainWindow,有menuBar, toolBar, statusBar屬性,分別用來設置菜單、工具欄、狀態欄,還有contentltem,可以用來設置內容元素的尺寸屬性。