> 文章列表 > QML控件和对话框之Window

QML控件和对话框之Window

QML控件和对话框之Window

Window

  • 一级目录

一级目录

ApplicationWindow是Window的子类。Window对象用于构造一个供QtQuick 2.x图形界面类型使用的顶层窗口,Window并不在QtQuick Controls模块中,而是位于Window模块,所以,需要使用下面的导入语句来导人该模块:
import QtQuick. Window 2. x
Window对象可以在一个Item或其他Window对象中声明,此时,内部 Window窗口自动成为外部控件的子窗口;一般在显示时会居于外部窗口中心,这依赖于平台的行为。同QWidget类似,Window也有自己的标志位设置。如果需要实现一个对话框,可以将Window.flags设置为Qt.Dialog。多个Window可以声明在一个顶层的QtObject内。此时,这些窗口就不会成为某个窗口的子窗口。除了利用底层平台,还可以显式设置x、y坐标,定位Window在屏幕的位置。

当用户关闭窗口时,会发出closing()信号。可以在onClosing()信号处理器中设置“oclose.accepted=false”语句,使窗口保持打开状态,这在提示用户保存数据等需求中是非常有用的。

默认情况下,Window是非模态显示的,不过可以通过设置modality属性将其作为模态对话框。modality属性合法值包括:

  • Qt::NonModal:非模态;
  • Qt::WindowModal:窗口模态:
  • Qt::ApplicationModal:应用程序模态。
ApplicationWindow{width: 400; height: 400color: "gray"visible: true// 设置透明度opacity: 0.6x: 300; y: 300Window {id: dialog; title: "Dialog"width: 200; height: 200flags: Qt.DialogLabel {width: parent.width; height: parent.heighttext: "This is a dialog. "horizontalAlignment: Text.AlignHCenterverticalAlignment: Text.AlignHCenter}onClosing: console.log("quit!");}Button {text: qsTr("Open")anchors.centerIn: parentonClicked: { dialog.show();}}
}