QML 控件—容器控件(ApplicationWindow)

导入import QtQuick.Controls 2.1
继承Window


Properties

  • activeFocusControl : Control
  • background : Item
  • contentData : list< Object>
  • contentItem : Item
  • font : font
  • footer : Item
  • header : Item
  • locale : Locale
  • menuBar : Item


Attached Properties

  • activeFocusControl : Control
  • contentItem : Item
  • footer : Item
  • header : Item
  • menuBar : Item
  • window : ApplicationWindow


细节描述
ApplicationWindow是一个窗口,它可以方便地添加一个menu bar(菜单栏),header(页眉)和footer(页脚)到窗口。

您可以声明ApplicationWindow作为应用程序的根项目,并使用QQmlApplicationEngine运行它。通过这种方式,您可以从QML控制窗口的属性、外观和布局。
在这里插入图片描述


ApplicationWindow {
    visible: true

    menuBar: MenuBar {
        // ...
    }

    header: ToolBar {
        // ...
    }

    footer: TabBar {
        // ...
    }

    StackView {
        anchors.fill: parent
    }
}

注意:默认情况下,ApplicationWindow是不可见的。

由于作用域和命名解析在QML中的工作方式,可以在其子QML对象的任何地方引用应用程序根元素的id。尽管这种方法对于许多应用程序和用例来说都很好,但是对于通用QML组件来说,它可能是不可接受的,因为它创建了对周围环境的依赖关系。

ApplicationWindow提供了一组附加的属性,可以使用这些属性从无法直接访问窗口的地方访问窗口及其构建块,而无需创建对特定窗口id的依赖关系。使用ApplicationWindow附加属性的QML组件可以在任何窗口中工作,而不管它的id是什么。


属性
activeFocusControl : Control
此属性保存当前具有活动焦点的控件,如果没有活动焦点的控件则为空。

Window::activeFocusItem和ApplicationWindow::activeFocusControl之间的区别在于前者可能指向控件的构建块,而后者指向封闭的控件。例如,当SpinBox有焦点时,activeFocusItem指向编辑器,而activeFocusControl指向SpinBox本身。

background : Item
此属性保存背景项。

背景项被堆叠在内容项之下,但在窗口背景色之上。

例如,背景项对于图像和渐变是有用的,但是color属性对于纯色是更好的,因为它不需要创建一个项。

注意:如果背景项没有明确指定大小,它会自动跟随控件的大小。在大多数情况下,不需要为背景项指定宽度或高度。

contentData : list< Object>
这个默认属性保存所有声明为窗口子对象的列表。

data属性允许你在ApplicationWindow中自由混合可视的子窗口、资源和其他窗口。

如果您将一个Item分配给contentData列表,它将成为窗口的contenttem的一个子元素,这样它就会出现在窗口内部。该项的父项将是窗口的contententitem。

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

contentItem : Item
此属性保存窗口内容项。

内容项堆叠在背景项之上,在menu bar(菜单栏),header(页眉)和footer(页脚)之下。

font : font
此属性保存当前为窗口设置的字体。

默认字体取决于系统环境。QGuiApplication维护了一个系统/主题字体,作为所有应用程序窗口的默认字体。在加载任何QML之前,你也可以通过将自定义字体传递给QGuiApplication::setFont()来设置windows的默认字体。最后,将字体与Qt的字体数据库进行匹配,以找到最佳匹配。

ApplicationWindow将显式字体属性传播到子控件。如果更改窗口字体上的特定属性,则该属性将传播到所有子控件

footer : Item
此属性保存窗口页脚项。页脚项被定位到底部,并根据窗口的宽度调整大小。缺省值为空。

ApplicationWindow {
    footer: ToolBar {
        // ...
    }
}

注意:指定一个ToolBar, TabBar,或DialogButtonBox作为窗口的页脚会自动将各自的ToolBar::position, TabBar::position,或DialogButtonBox::position属性设置为footer。

header : Item
此属性保存窗口头项。标题项定位在窗口的顶部,菜单栏下方,并调整大小为窗口的宽度。缺省值为空。

ApplicationWindow {
    header: TabBar {
        // ...
    }
}

注意:指定一个ToolBar, TabBar,或DialogButtonBox作为窗口头自动设置相应的ToolBar::position, TabBar::position,或DialogButtonBox::position属性为header。

locale : Locale
此属性保存窗口的区域设置。

默认区域设置取决于系统环境。您可以在加载任何QML之前,通过调用QLocale::setDefault()来设置默认区域设置。

ApplicationWindow将区域设置传播给子控件。如果更改窗口的区域设置,该区域设置将传播到窗口中的所有子控件,覆盖系统默认区域设置。

menuBar : Item
此属性保存窗口菜单栏。菜单栏定位于窗口的顶部,位于页眉上方,并调整其大小为窗口的宽度。缺省值为空。

ApplicationWindow {
    menuBar: MenuBar {
        // ...
    }
}

这个属性是在QtQuick.Controls 2.3(Qt 5.10)。


附加属性
activeFocusControl : Control
此附加属性保存当前具有活动焦点的控件,如果没有活动焦点的控件则为空。该属性可以附加到任何项。如果项目不在窗口中,或者窗口没有活动的焦点,则该值为空。

contentItem : Item
此附加属性保存窗口内容项。该属性可以附加到任何项。如果该项目不在ApplicationWindow中,则该值为空。

footer : Item
此附加属性保存窗口页脚项。该属性可以附加到任何项。如果该项目不在ApplicationWindow中,或者该窗口没有页脚项目,则该值为空。

header : Item
此附加属性保存窗口头项。该属性可以附加到任何项。如果该项目不在ApplicationWindow中,或者该窗口没有头项,则该值为空。

menuBar : Item
此附加属性保存窗口菜单栏。该属性可以附加到任何项。如果该项目不在ApplicationWindow中,或者该窗口没有菜单栏,则该值为空。

这个属性是在QtQuick.Controls 2.3(Qt 5.10)。

window : ApplicationWindow
此附加属性保存应用程序窗口。该属性可以附加到任何项。如果该项目不在ApplicationWindow中,则该值为空。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值