QML- QML与JavaScript交互综述

news/2024/12/23 13:25:21 标签: qml, javascript, qml和js, js

QML与JavaScript交互综述总结

  • 一、概述
  • 二、JavaScript表达式
  • 三、JavaScript资源
  • 四、导入 JavaScript
  • 五、JavaScript主机环境

一、概述

QML语言使用类似json的语法,并允许将各种表达式和方法定义为JavaScript函数。它还支持用户导入外部JavaScript文件,并使用这些导入提供的功能。总的来说,JavaScript和前端里面的角色基本一致,就是响应一些界面逻辑,真正的后台逻辑还得是C++来干。

二、JavaScript表达式

QML与JavaScript进行了深度集成,并允许用JavaScript定义信号处理程序和方法。
QML的另一个核心特性是能够使用属性绑定指定和加强对象属性之间的关系,属性绑定也是使用JavaScript定义的。

就像这种,back 这个对象的 宽高和 root 的宽高是绑定在一起的,后台使用的JavaScript来实现绑定的。

javascript">Window {
    id: root
    visible: true
    width: 319
    height: 570
    title: qsTr("Hello World")

    Image {
        width: root.width
        height: root.height

        id: back
        source: "./images/plant.jpg"
        fillMode: Image.PreserveAspectCrop
    }
}

三、JavaScript资源

在JavaScript函数中定义的应用程序逻辑可以被分离到单独的JavaScript文件中,称为JavaScript资源。这样把常用的JS功能给分离出来,以便于后面复用在一起,在QML体系里面一共有几种不同类型的JavaScript资源,具有不同的语义。后面会慢慢介绍清楚的。

四、导入 JavaScript

QML文档可以导入JavaScript资源,而JavaScript资源可以导入其他JavaScript资源以及QML模块。这允许应用程序开发人员以模块化的、自包含的文件提供应用程序逻辑。这就是模块化,相互引用和相互依赖的功能。

五、JavaScript主机环境

QML引擎提供的JavaScript环境与web浏览器提供的JavaScript环境有一些不同。 毕竟 JS 代码也是运行在某个引擎环境里面的,QML里面的限制就是QML引擎。web里面的就是 V8 Js引擎,QML引擎在根上下文中提供了各种对象,JavaScript开发人员可能不熟悉这些对象。这些限制和扩展在QML引擎提供的JavaScript主机环境的描述中有文档记录。


http://www.niftyadmin.cn/n/145340.html

相关文章

第九章 函数

第九章 函数 目录一. 定义与调用二. 声明三. 实参四. Return五. 程序终止六. 递归一. 定义与调用 例子: double average(double a,double b) { return (a b) / 2; } Avg average…

ChatGPT对敏捷实践者的提示

作者 | Stefan Wolpers作为Scrum实践者,如何获得更好的结果。我选择以更全面的提示为基础,用三个日常场景来呈现ChatGPT。01、TL; DR:ChatGPT对Scrum从业人员的提示上周,我根据《Scrum Master面试指南》中的问题,对Cha…

tmall.item.combine.get( 组合商品获取接口 )

¥开放平台基础API必须用户授权 查询组合商品的SKU信息 公共参数 请求地址: HTTP地址 http://gw.api.taobao.com/router/rest 公共请求参数: 公共响应参数: 点击获取key和secret 请求示例 TaobaoClient client new DefaultTaobaoClient(url, appkey, secret); T…

现代数据堆栈MDS有什么现代之处

Dazdata MDS 现代数据堆栈(MDS)已经普及了几年,但直到最近才在其定义上趋同。在我们深入探讨MDS的哲学和技术指标之前,让我们先谈谈传统数据堆栈的失败。 为什么MDS越来越受欢迎? 原因很简单,传统数据堆…

开度传感器专用测试仪采集编码器值的应用

一、产品概述 开度传感器采用光电式或机械式系列编码器、外配安装支架、联轴器或齿轮等联结件构成。产品通过专用测试仪采集编码器值来测量出被测件的位移量,并达到对被测件位移的实时测量与控制的目的。适合对各类闸门(平板门、弧形门、人字门、门机、桥机等)的起…

JS 之call()、apply()、bind()

call()、apply()、bind()都是用于改变this指向的方法,不同点是传参方式不同以及返回结果不同。 区别: call( ) 是接收一个及其以上的参数,第一个参数表示this要指向的对象,其余参数表示调用函数需要传入的参数,返回调…

Matlab比较函数句柄

比较从命名函数构造的句柄 MATLAB 认为您从同名函数构造的函数句柄是相等的。trueisequal 函数在比较这些类型的句柄时返回一个值。 fun1 = @sin; fun2 = @sin; isequal(fun1,fun2) ans = logical 1 如果将这些句柄保存到 MAT 文件,然后将它们加载回工作区,它们仍然相等。 将…

matlab创建表并为其分配数据

表格适用于面向列的数据,例如来自文本文件或电子表格的表格数据。表将数据列存储在变量中。表中的变量可以具有不同的数据类型,但所有变量必须具有相同的行数。但是,表变量不限于仅存储列向量。例如,一个表变量可以包含一个具有多列的矩阵,只要它具有与其他表变量相同的行…