首页 > 编程知识 正文

qml使用的人多吗,qm医学术语是什么意思

时间:2023-05-05 21:47:34 阅读:54909 作者:131

解读QML之一

Qt QML模块为实现QML框架提供了c类。 客户端可以使用这些类与QML运行时进行交互,例如向对象注入数据或调用方法,并从QML文件实例化对象的层次结构。 Qt QML模块不仅提供了以下类,还提供了许多c类: 但是下面列举的是

类提供QML运行时的基础和QML的核心概念。

QML运行时典型的QML APP应用程序具有到c函数的入口点,即实例化QQmlEngine并使用QQmlComponent加载qml文档。 引擎(QQmlEngine对象)提供了默认的QQmlContext。 这是用于执行QML文档中定义的方法和表达式的顶级上下文。 在QML文档中定义的对象层次是通过调用QQmlComponent实例化对象的create ()方法实例化的。

客户端可能需要将属性或对象注入上下文中,以更改引擎提供的默认QQmlContext。 这些方法可以通过调用QQmlEngine:rootContext ()方法来访问顶级上下文。

实例化对象时,客户端通常会将控制权传递给APP应用程序的事件循环,以便APP应用程序可以分发和处理用户键入的时间(例如鼠标单击)。

注意: Qt Quick模块提供了一个有用的类QQuickView,它提供了一个QML运行时和一个用于查看qml APP应用程序的可视窗口。

QQmlEngine类

QQmlEngine类提供了用于管理QML文档中定义的对象集成层次结构的引擎。 提供可以执行表达式的根QML上下文,以便根据需要正确更新对象的属性。

QQmlEngine允许您将全局配置应用于所有受管对象。 例如,QNetworkAccessManager用于网络通信,文件路径用于永久存储。

有关详细信息,请参阅QQmlEngine类的文档,了解它如何应用于APP应用程序。

QQmlContext类

QQmlContext类为对象实例化和表达式评估提供了上下文环境。 所有对象都在特定上下文中实例化,而运行APP应用程序时运行的表达式在特定上下文中运行。 此上下文定义符号的分析方式以及表达式操作的值。

浏览QQmlContext类的文档,了解如何获取更多信息和对象的上下文。

动态对象实例化以及表达式的执行

动态对象的实例化和动态表达式的计算是QML的中心概念。 QML文档定义了可以在运行时在QQmlComponent中实例化的对象类型。 QQmlComponent类的实例可以直接通过c创建,也可以通过Qt.createComponent )方法在QML代码中创建。 属性表达式可以在c中在QQmlExpression类中计算,这些表达式可以直接在QML上下文中使用。

QQmlComponent类

QQmlComponent类可用于加载QML文档。 要实例化QML文档中定义的对象层次结构,需要QQmlEngine。

了解有关QQmlComponent的详细信息以及如何使用QQmlComponent。

QQmlExpression类

QQmlExpress类为客户端提供了使用特定QML计算上下文在c上执行JavaScript表达式的方法。 这允许客户端通过id访问QML对象。 返回的计算结果类型为QVariant,转换策略由QML引擎定义。

查看QQmlExpression类的文档,了解详细信息以及如何在APP应用程序中使用QQmlExpression。

用于在33558www.Sina.com/QML文档中定义对象层次结构的类型来源于:

以QML语言本机提供

使用QML模块用c注册

*QML模块提供的QML文档

当然,APP应用程序开发者也可以提供自己的类型。 您可以直接注册为c类型,也可以在QML文档中定义和导入可重用的组件。

无论类型的定义来自哪里,引擎都要求这些类型对属性和实例是类型安全的。

QML的类型系统

QML语言内置了基元类型,如整数类型、双精度浮点类型、字符串类型和布尔类型。 对象可以具有这些类型的属性,这些类型的值可以作为参数传递给对象的方法。

有关详细信息,请参阅QML基本类型的文档。

QML分支

持一系列的基本类型。一个基本类型通常指的是一个简单的值,例如一个int或者一个string。和QML对象类型做对比,QML对象类型通常指的是一个包含属性,信号和方法的对象。不同于对象类型,基本类型不能声明QML对象:例如,不能声明一个int{}对象或者一个size{}对象。

       基本类型通常这么使用:

     *单个的值(例如:int指一个单个数字,var指条目列表)

     *一个包含了一系列属性-值对的值(例如:size值包含了width和height属性的值)

        一些基本类型是引擎默认支持的,使用它们不需要导入声明,然而其它的基本类型则需要导入模块后才能使用。所有罗列在下面的类型都可以在QML文档中作为属性使用,除了:

      *list必须和一个QML对象一起使用

      *enumeration不能被直接使用,除非枚举类型被一个注册的QML对象类型定义

QML语言提供的基本类型


QML模块提供的基本类型

         QML模块扩展QML语言提供更多的基本类型。例如:QtQuick模块提供的基本类型罗列如下:


          目前,只有Qt提供的QML模块可以提供基本类型,但是这种局面在将来发布的QtQML可能会被改变:我们可以使用一个特定的QML模块提供的类型,客户端只需要早QML文档中导入该模块。

         一些基本的类型也拥有属性,例如:font类型就具有pixelSize,family和b属性。与对象类型的属性不同的是,基本类型的属性不提供它们自己属性改变的信号。因此,仅仅只能为基本类型的属性创建属性改变信号的处理者。


        基本类型的任一属性改变,那么属性改变的信号就会被发射,例如:


JavaScript类型

         JavaScript对象和数组都被QML引擎支持。任何标准的JavaScript类型都可以使用通用的var类型创建和存储。

         例如,标准的Date和Array类型都是可使用的:


QML对象类型

        QML对象类型就是那些可以实例化的QML对象。QML对象类型都是从QtObject继承而来,并且通过QML模块提供。应用程序可以导入这些模块继而使用这些类型。QtQuick模块提供了大多数在QML中用于创建UI的类型。

每一个QML文档都隐式的定义了一个QML对象类型,它可以在QML文档中重用。

        Rectangle就是一个对象类型:它可以被用来创建Rectangle类型的对象。

        自定义的QML对象类型可以通过创建一个定义了该对象类型的.qml文件来完成,或者是通过C++定义QML类型并将该类型注册到QML引擎。

       通过.qml文件自定义QML类型举例如下:


        注:还可以通过Component定义匿名类型,如下:


          通过C++定义QML类型举例:略。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。