QML控件和对话框之Window

文章介绍了Window及其子类ApplicationWindow在QtQuick2.x中的使用,包括导入模块、窗口层次、标志位设置、关闭信号处理以及模态对话框的实现。示例代码展示了如何创建和配置一个带有对话框的Window,并通过点击按钮显示对话框。
摘要由CSDN通过智能技术生成

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: 400
    color: "gray"
    visible: true
    // 设置透明度
    opacity: 0.6
    x: 300; y: 300

    Window {
        id: dialog; title: "Dialog"
        width: 200; height: 200
        flags: Qt.Dialog
        Label {
            width: parent.width; height: parent.height
            text: "This is a dialog. "
            horizontalAlignment: Text.AlignHCenter
            verticalAlignment: Text.AlignHCenter
        }

        onClosing: console.log("quit!");
    }
    Button {
        text: qsTr("Open")
        anchors.centerIn: parent
        onClicked: { dialog.show();}
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值