Qt | 初识QML

目录

一、简介

二、QML文件介绍

 三、导入JavaScript文件

1.创建一个js文件:MyJs.js

2.main.qml中调用

四、Others


一、简介

        从 Qt 4.7 开始,Qt 引入了一种声明式脚本语言,称为 QML(Qt Meta Language 或者 Qt Modeling Language),作为 C++ 语言的一种替代。而 Qt Quick 就是使用 QML 构建的一套类库。 QML 是一种基于 JavaScript 的声明式语言。

二、QML文件介绍

         一个 QML 文档分为 import 和 declaration 两部分。

  • import用于引入文档中所需要的组件(有可能是类库,也可以是一个 JavaScript 文件或者另外的 QML 文件);
  • declaration 用于声明本文档中的 QML 元素。
import QtQuick 2.12
import QtQuick.Window 2.12 //Window模块代表一个窗体
import QtQuick.Controls 2.14 //Controls模块有很多的控制组件

//每一个QML文件都需要一个根元素,eg:Window
Window {
    id:root //建议根元素的id直接叫“root”
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World") //出现在QML 中的字符串如果需要翻译则可以通过使用 qsTr()来进行标记。
    Row {   //横排
        spacing: 5
        //可视控件
        Button{
            id:addBtn
            text: qsTr("add")
            onClicked: {
                text.text=(add(1,2))
            }
            function add(num1,num2)
            {
                return num1+num2;
            }
        }
       
        Slider{
            id:slider
            from: 1
            to:100
            value: 50
            onValueChanged: {
                text.text=(value);
            }
        }
        Text {
            id: text
        }
    }
}

 三、导入JavaScript文件

1.创建一个js文件:MyJs.js

Javascript语言不支持"类",但是可以用一些变通的方法,模拟出"类"。

定义类的关键字是function而不是class。

构造函数法

用构造函数模拟"类",在其内部用this关键字指代实例对象。

function MyJSClass(num){
    this.num=num;
    this.add= function (number)
    {
        return number+num;
    }
    this.sub= function (number)
    {
        return number-num;
    }
}

2.main.qml中调用

import "./MyJs.js" as Test //起别名,首字母大写
        Button{
            id:testJsBtn
            text: "testJs"
            onClicked: {
                let t= new Test.MyJSClass(10);
                text.text=(t.add(11));
                text.text=(t.sub(11));
            }
        }

四、Others

Qt安装目录下的qmlscene.exe 可以打开qml文件。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烫青菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值