QML类型:Window

一、描述

Window 对象为 Qt Quick 场景创建一个顶级窗口。

Window 可以在 Item 内或在另一个 Window 内声明,在这种情况下,内部窗口将自动变为外部窗口的“瞬态”:即,默认情况下,大多数平台将显示它以外部窗口为中心。

import QtQuick 2.14
import QtQuick.Window 2.14

Window {
    width: 640
    height: 480
    visible: true
    title: qsTr("Hello World")

    Window {
        width: 150
        height: 150
        visible: true
        title: qsTr("Hello World")
    }
}

二、属性成员

1、maximumHeight : int

     maximumWidth : int

     minimumHeight : int

     minimumWidth : int

窗口的最大、最小尺寸。这是对窗口管理器的提示,以限定窗口的大小范围。

2、height : int

      width : int

      x : int

      y : int

定义窗口的位置和大小。(x,y) 位置是相对于屏幕。

3、active : bool

窗口的活动状态。

4、activeFocusItem : Item

当前具有活动焦点的项目,如果没有具有活动焦点的项目,则为 null。

5、color : color

窗口的背景颜色。

6、[read-only]contentItem : Item

场景的不可见根项。

7、contentOrientation : Qt::ScreenOrientation

内容方向,这是对窗口管理器的提示。默认值为 Qt::PrimaryOrientation

窗口和内容方向之间的差异决定了内容旋转的幅度。

enum Qt::ScreenOrientation:此枚举类型指定屏幕可能具有的各种方向。

  • Qt::PrimaryOrientation:显示器的主要方向。
  • Qt::LandscapeOrientation:横向,显示宽度大于显示高度。
  • Qt::PortraitOrientation:纵向,显示高度大于显示宽度,相对于横向顺时针旋转90度。
  • Qt::InvertedLandscapeOrientation:反向横向,相对于横向旋转 180 度。
  • Qt::InvertedPortraitOrientation:反向纵向,相对于纵向旋转 180 度。

8、[default] data : list<Object>

data 属性允许在一个窗口中自由混合可视子项、资源和其他窗口。

如果将 Item 分配给 data 列表,它将成为 Window 的 contentItem 的子项,因此它出现在窗口内。项目的父项将是窗口的 contentItem,它是该窗口内项目所有权树的根。

通常不需要引用此属性,因为它是 Window 的默认属性,所有子项都会自动分配给该属性。

9、flags : Qt::WindowFlags

窗口标志。窗口标志控制窗口在窗口系统中的外观,是对话框、弹出窗口还是常规窗口,以及是否应该有标题栏等。

10、modality : Qt::WindowModality

窗口的模态。模态窗口阻止其他窗口接收输入事件。

enum Qt::WindowModality:

  • Qt::NonModal:窗口不是模态的,不会阻塞其他窗口的输入。
  • Qt::WindowModal:该窗口对于单个窗口层次结构是模态的,并阻止输入到其父窗口、所有祖父窗口以及其父窗口和祖父窗口的所有兄弟窗口。
  • Qt::ApplicationModal:窗口对应用程序是模态的,并阻止对所有窗口的输入。

11、opacity : real

不透明度。如果窗口系统支持窗口不透明度,这可用于淡入淡出窗口,或使其半透明。

1.0 或更高的值被视为完全不透明,而 0.0 或更低的值被视为完全透明。 中间的值代表两个极端之间不同的半透明度水平。默认值为 1.0。

12、palette : Palette

此属性保存当前为窗口设置的调色板。

默认调色板取决于系统环境。QGuiApplication 维护一个系统/主题调色板,作为所有应用程序窗口的默认设置。在加载任何 QML 之前,可以通过将自定义调色板传递给 QGuiApplication::setPalette() 来设置窗口的默认调色板。

ApplicationWindow 将显式调色板属性传播到子控件。如果更改窗口调色板上的特定属性,该属性将传播到窗口中的所有子控件,覆盖该属性的任何系统默认值。

13、screen : variant

与窗口关联的屏幕。

如果在显示窗口之前指定,将导致该窗口显示在该屏幕上,除非已设置明确的窗口位置。该值必须是 Qt.application.screens 数组中的一个元素。

注意:为确保在创建底层本机窗口时该窗口与所需的屏幕相关联,请确保尽早设置此属性,并且不会推迟其值的设置。 这在没有窗口系统的嵌入式平台上尤为重要,因为每个屏幕一次只允许一个窗口。 如果新屏幕与旧屏幕属于同一虚拟桌面,则在创建窗口后设置屏幕不会移动窗口。

14、title : string

窗口的标题。根据窗口系统和窗口标志,窗口标题可能出现在窗口装饰的标题区域中。

15、transientParent : QWindow

此窗口是临时弹出的窗口。

这是对窗口管理器的提示:该窗口是代表临时父级的对话框或弹出窗口。这通常意味着瞬态窗口在最初显示时将以其瞬态父窗口为中心,最小化父窗口也会最小化瞬态窗口。

通常,如果在 Item 内或另一个 Window 内声明 Window,则会自动推断出这种关系。在这种情况下,如果将此窗口的 visible 属性声明为 true,则在显示瞬态父窗口之前它实际上不会显示。然而,如果设置了这个属性,那么 Qt Quick 将不再等待直到 transientParent 窗口出现才显示这个窗口。

如果希望能够独立于声明它的父项或窗口显示瞬态窗口,可以通过将瞬态父项设置为空来删除该关系:

import QtQuick.Window 2.13

Window {
    Window {
        transientParent: null
        visible: true
    }
}

为了使窗口在默认情况下居中在其临时父级之上,取决于窗口管理器,可能还需要使用合适的 Qt::WindowType(例如 Qt::Dialog)设置 flags 属性。

16、visibility : QWindow::Visibility

窗口的屏幕工作状态。

设置为 QWindow::AutomaticVisibility 意味着给窗口一个默认的可见状态,根据平台可能是 QWindow::FullScreenQWindow::Windowed。 但是,在读取可见性属性时,将始终获得实际状态,而不是 QWindow::AutomaticVisibility

enum QWindow::Visibility:这个枚举描述了窗口占据或应该占据屏幕的哪个部分。

  • QWindow::Windowed:窗口占据屏幕的一部分,但不一定是整个屏幕。这种状态只会出现在支持同时显示多个窗口的窗口系统上。在这种状态下,如果 WindowFlags 允许并且窗口系统支持,则用户可以手动移动和调整窗口大小。
  • QWindow::Minimized:根据窗口系统处理最小化窗口的方式,窗口缩小为任务栏、停靠栏、任务列表或桌面上的条目或图标。
  • QWindow::Maximized:窗口占据一整屏,标题栏依然可见。在大多数窗口系统上,这是通过单击工具栏上的最大化按钮实现的状态。
  • QWindow::FullScreen:窗口占据一整屏,不可调整大小,也没有标题栏。在某些不支持同时显示多个窗口的平台上,当窗口未隐藏时,这可能是通常的可见性。
  • QWindow::AutomaticVisibility:给窗口一个默认的可见状态,根据平台可能是全屏或窗口化。
  • QWindow::Hidden:窗口在任何情况下都不可见。

17、visible : bool

窗口是否在屏幕上可见。设置为 false 与将 visibility 设置为 QWindow::Hidden 相同。

三、附加属性

1、Window.height : int

     Window.width : int

窗口的大小。

2、Window.active : bool

窗口是否处于活动状态。

import QtQuick 2.4
import QtQuick.Window 2.2

Text {
    text: Window.active ? "active" : "inactive"
}

3、Window.activeFocusItem : Item

此附加属性保存当前具有活动焦点的项目,如果没有具有活动焦点的项目,则为 null。

4、Window.contentItem : Item

此附加属性保存场景的不可见根项目,如果项目不在窗口中,则为 null。

5、Window.visibility : QWindow::Visibility

此附加属性保存窗口当前是否在窗口系统中显示为正常、最小化、最大化、全屏或隐藏。如果该项目未显示在任何窗口中,则该值将为 QWindow::Hidden

6、Window.window : Window

此附加属性包含项目的窗口。

四、信号成员

1、afterAnimating()

该信号在请求渲染线程执行场景图同步之前在 GUI 线程上发出。

2、closing(CloseEvent close)

当用户尝试关闭窗口时会发出此信号。

该信号包括关闭参数。close.accepted 属性默认为 true,即允许窗口关闭。

3、sceneGraphError(SceneGraphError error, QString message)

当场景图初始化期间发生错误时,会发出此信号。

可以实现 onSceneGraphError(error, message) 以自定义方式处理错误,例如图形上下文创建失败。如果没有处理程序连接到此信号,Quick 将打印消息,或显示消息框,并终止应用程序。

五、成员函数

1、alert(int msec)

导致以毫秒为单位显示警报。 如果 msec 为 0(默认值),则警报将无限期显示,直到窗口再次变为活动状态。

在警报状态下,该窗口指示它需要注意,例如通过闪烁或弹跳任务栏条目。

2、close()

关闭窗口。

当调用此方法时,或者当用户尝试通过其标题栏按钮关闭窗口时,将发出 closing() 信号。如果没有处理程序,或者处理程序没有撤销关闭权限,窗口将随后关闭。如果 QGuiApplication::quitOnLastWindowClosed 属性为true,并且没有其他窗口打开,应用程序将退出。

3、hide()

隐藏窗口。相当于将 visible 设置为 false 或将 visibility 设置为 QWindow::Hidden

4、lower()

请求将窗口降低以显示在其他窗口下方。

5、raise()

请求将窗口升高以显示在其他窗口之上。

6、requestActivate()

请求激活窗口,即接收键盘焦点。

7、show()

显示窗口。这相当于调用 showFullScreen()、showMaximized() 或 showNormal(),具体取决于平台对窗口类型和标志的默认行为。

      showFullScreen()

将窗口显示为全屏。相当于将 visibility 设置为 QWindow::FullScreen

      showMaximized()

将窗口显示为最大化。相当于将 visibility 设置为 QWindow::Maximized

      showMinimized()

将窗口显示为最小化。相当于将 visibility 设置为 QWindow::Minimized

      showNormal()

正常显示窗口,即既不最大化、最小化也不全屏。相当于将 visibility 设置为 QWindow::Windowed

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值