----- Window -----


https://doc.qt.io/qt-6.9/zh/qml-qtquick-window.html

 属性 
import QtQuick
    
Window {
    //尺寸、位置
    minimumWidth(Height): int
    maximumWidth(Height): int
    width(height): int
    x(y): int
    color: color
        //设置为"transparent" 或有透明度的颜色,则还应设置合适的 flags
        //否则,窗口半透明可能无法启用
        //可以结合部分 flags 标志和透明图片,只显示一张图片样的窗口
    
    //窗口标志
    flags: Qt::WindowFlags
        flags: Qt.Widget
            //不带最小/大化、关闭的窗口,可移动
        flags: Qt.Window
        flags: Qt.Dialog
            //对话框,只有关闭按钮,可移动
        flags: Qt.Popup
            //弹出式顶层窗口,点击窗口外会关闭,不可移动
        flags: Qt.Tool
            //工具窗口,只有关闭按钮,可移动
        flags: Qt.ToolTip
            //工具提示,无任何按钮,不可移动
        flags: Qt.SplashScreen
            //表示窗口是闪屏,可当做软件的启动窗口加载一些信息,无任何按钮,不可移动
        flags: Qt.SubWindow
            //子窗口,只有关闭按钮,可移动
        flags: Qt.FramelessWindowHint
            //无边框窗口,可以自定义关闭、缩小、放大等按钮
    
    //模态窗口
    modality: Qt::WindowModality
        modality: Qt.NonModal  //无模态,默认
        modality: Qt.WindowModal
            //窗口模态,只阻止父窗口及其子窗口的交互
        modality: Qt.ApplicationModal
            //应用模态,阻止整个应用程序中所有窗口的交互
    
    opacity: real  //不透明度(全局)
    palette: Palette
        //调色板,默认调色板取决于系统主题
    screen: variant  //与窗口关联的屏幕
    title: string  //窗口标题
    transientParent: QWindow
        //该窗口为瞬时弹出窗口
    
    //屏幕占用状态
    visibility: QWindow::Visibility
        visibility: Window.Windowed
            //默认,值 = 2
        visibility: Window.Minimized
            //最小化,值 = 3
        visibility: Window.Maximized
            //最大化,值 = 4
        visibility: Window.FullScreen
            //全屏,无标题栏,适用于播放器全屏等,值 = 5
        visibility: AutomaticVisibility
            //自动,根据系统平台而定,可能是全屏或窗口状态,值 = 1
        visibility: Hidden
            //不可见,相当于 visible: false,值 = 0
    
    visible: bool
        //可见性,默认 false,可通过设置 visibility 覆盖
    
    Item {
        Window.width(height): int
            //获取窗口的宽/高
        Window.window: Window
            //获取项目所在的窗口
    }
}


 只读属性 
import QtQuick
    
Window {
    active: bool
        //窗口活动状态
    activeFocusItem: Item
        //当前处于活动焦点的项目,如果没有处于活动焦点的项目,则为null
    contentItem: Item
        //场景的隐形根项目
    
    Item {
        Window.active: bool
            //获取窗口的活动状态
        Window.activeFocusItem: Item
            //获取当前处于活动焦点的项目,如没有,则显示null
        Window.contentItem: Item
            //获取不可见的根项目,如项目不在窗口中,则保存null
        Window.visibility: QWindow::Visibility
            //获取窗口当前在系统中的显示状态
    }
}


 信号 
import QtQuick
    
Window {
    afterAnimating()
    onAfterAnimating: {
        //GUI 界面发生变化时会发出
    }
    
    closing(CloseEvent close)
    onClosing: {
        //试图关闭窗口时会发出该信号
        //close 参数 close.accepted 默认为 true,即可以关闭窗口
        //在信号代码块中设置 close.accepted = false 可阻止关闭窗口
        //例:onClosing: close.accepted = false 
        //应用:在文档未保存时,点击关闭时,需要阻止,并提醒保存
    }
    
    frameSwapped()
    onFrameSwapped: {
        //当一帧已排队等待呈现时,将发出该信号
        //启用垂直同步后,在连续动画场景中,每个 vsync 间隔最多发出一次信号
    }
    
    sceneGraphError(SceneGraphError error, QString message)
    onSceneGraphError: {
        //场景图初始化过程中出现error 时,将发出该信号
        //可以自定义实现 onSceneGraphError(error, message) 来处理图形上下文创建失败等错误
        //如果没有处理程序连接到此信号,Quick 将打印message 或显示消息框,并终止应用程序
    }
}


 方法 
import QtQuick
    
Window {
    alert(int msec)
        //触发警报,显示时间为 毫秒
        //msec 默认 0,无限期显示警报,直到窗口处于活动状态
        //需要窗口未活动状态,任务栏会闪烁提示
    close()
        //关闭窗口
    hide()
        //隐藏窗口
    show()
        //显示窗口
    showFullScreen()
        //全屏窗口,相当于 visibility: Window.FullScreen
    showMaximized()
        //最大化,相当于 visibility: Window.Maximized
    showMinimized()
        //最小化,相当于 visibility: Window.Minimized
    showNormal()
        //正常方式显示窗口,相当于 visibility: Window.Windowed
    lower()
        //降低到其他窗口下方
    raise()
        //显示在其他窗口上方
    requestActivate()
        //要求激活窗口,即接收键盘焦点
}