当前位置: 首页 > news >正文

萧山网站建设靠谱seo/宣传广告

萧山网站建设靠谱seo,宣传广告,企业信息管理系统的组成不包括,企业网站建设及运营现状分析在QML定义JavaScript资源一、概述二、后台代码实现文件三、共享JavaScript资源(库)一、概述 QML应用程序的一部分程序逻辑可以用 JavaScript 定义。JavaScript代码可以在QML文档中内联定义,也可以分离到单独的 JavaScript 文件中(在QML中称为JavaScript资源)。 QML…

在QML定义JavaScript资源

  • 一、概述
  • 二、后台代码实现文件
  • 三、共享JavaScript资源(库)

一、概述

QML应用程序的一部分程序逻辑可以用 JavaScript 定义。JavaScript代码可以在QML文档中内联定义,也可以分离到单独的 JavaScript 文件中(在QML中称为JavaScript资源)。
QML支持两种不同类型的JavaScript资源:后台代码实现文件和共享(库)文件。这两种JavaScript资源都可以被其他JavaScript资源导入,或者包含在QML模块中。

二、后台代码实现文件

导入到QML文档中的大多数JavaScript文件都是导入它们的QML文档的有状态实现。在这些情况下,文档中定义的QML对象类型的每个实例都需要一个单独的JavaScript对象和状态副本,以便正确地执行操作。

导入JavaScript文件时的默认行为是为每个QML组件实例提供一个唯一的、独立的副本。如果JavaScript文件没有使用.import语句导入任何资源或模块,那么它的代码将在与QML组件实例相同的范围内运行,因此可以访问和操作在该QML组件中声明的对象和属性。否则,它将有自己唯一的作用域,如果需要,QML组件的对象和属性应该作为参数传递给JavaScript文件的函数。
代码隐藏实现资源的示例如下:

  // MyButton.qmlimport QtQuick 2.0import "my_button_impl.js" as Logic // A new instance of this JavaScript resource// is loaded for each instance of Button.qml.Rectangle {id: rectwidth: 200height: 100color: "red"MouseArea {id: mouseareaanchors.fill: parentonClicked: Logic.onClicked(rect)}}// my_button_impl.jsvar clickCount = 0;   // this state is separate for each instance of MyButtonfunction onClicked(button) {clickCount += 1;if ((clickCount % 5) == 0) {button.color = Qt.rgba(1,0,0,1);} else {button.color = Qt.rgba(0,1,0,1);}}

一般来说,简单的逻辑应该在QML文件中内联定义,但更复杂的逻辑应该分离到代码背后的实现资源中,以提高可维护性和可读性。

三、共享JavaScript资源(库)

默认情况下,从QML导入的JavaScript文件与QML组件共享它们的上下文。这意味着JavaScript文件可以访问相同的QML对象并可以修改它们。因此,每次导入都必须有这些文件的唯一副本。

前一节介绍了JavaScript文件的有状态导入。然而,有些JavaScript文件是无状态的,更像是可重用库,因为它们提供了一组helper函数,不需要从导入它们的地方获取任何东西。如果使用特殊的pragma标记此类库,可以节省大量内存并加速QML组件的实例化,如下面的示例所示。

// factorial.js.pragma libraryvar factorialCount = 0;function factorial(a) {a = parseInt(a);// factorial recursionif (a > 0)return a * factorial(a - 1);// shared statefactorialCount += 1;// recursion base-case.return 1;}function factorialCallCount() {return factorialCount;}

pragma声明必须出现在除注释之外的任何JavaScript代码之前。

注意,多个QML文档可以导入“factorial.js”并调用它提供的 factorial 和 factorialCallCount 函数。JavaScript 导入的状态在导入它的QML文档之间共享,因此在从不调用 factorial 函数的QML文档中调用 factorialCallCount 函数时,它的返回值可能是非零。

例如:

// Calculator.qmlimport QtQuick 2.0import "factorial.js" as FactorialCalculator // This JavaScript resource is only// ever loaded once by the engine,// even if multiple instances of// Calculator.qml are created.Text {width: 500height: 100property int input: 17text: "The factorial of " + input + " is: " + FactorialCalculator.factorial(input)
}

由于它们是共享的,.pragma库文件不能直接访问QML组件实例对象或属性,尽管QML值可以作为函数参数传递。

http://www.jmfq.cn/news/5346757.html

相关文章:

  • 天津商城网站建设/现在阳性最新情况
  • 网站建设与网页制作/搜索引擎优化排名培训
  • 政府形象建设 网站更新/seo搜索引擎优化简历
  • 天猫网站建设的理由/跨境电商seo什么意思
  • 大朗东莞网站建设/朝阳网站seo
  • 2017年网站建设市场分析/成都百度推广
  • 手机建设网站赚钱/宽带推广方案
  • 江西省建设工程安全质量监督管理局网站/谷歌app下载 安卓
  • 天津建设工程计价网站/百度输入法下载
  • 党建网站建设课题/世界足球排名前十名
  • 政府网站建设计划/亚马逊免费的关键词工具
  • 手机网站建设哪家有/宁德市委书记
  • 濉溪建设投资网站/移动端关键词优化
  • 门户网站建设注意问题/app关键词推广
  • 类似建E网模型网站建设/成人教育培训机构
  • 顺的网站建设效果/沧州seo包年优化软件排名
  • 浙江省建设厅继续教育官方网站/百度竞价优化
  • 中国建设银行网站如何注册/网站建设网络推广平台
  • 汽车网站正在建设中模板/百度竞价推广价格
  • 安顺 网站建设/精准网络推广
  • 云畅网站建设网址/seo专员工资一般多少
  • 淮北 网站建设 有限公司/竞价推广论坛
  • 建设直销银行网站/云速seo百度点击
  • 论述网站开发建设的一般流程/购买一个网站域名需要多少钱
  • 网站建设套定额/外包公司是什么意思
  • 建设外贸网站要多少钱/盛大游戏优化大师
  • 惠州网站优化建设/上海百度
  • 百度建设网站/怎么推广自己的产品
  • 学校网站建设多少钱/seo研究协会
  • 崇明区建设镇政府网站/没有限制的国外搜索引擎