首页 > 其他分享 >QML

QML

时间:2022-09-05 00:13:27浏览次数:60  
标签:函数 信号处理器 Button Object QML 信号

QML是一种脚本语言。qt quick是QML语言的库,暂且可以这么理解。
QML用来声明UI元素,并可以做逻辑处理,可以理解为 html + java script,比如在窗体上放置一个按钮:

import QtQuick 2.15
import QtQuick.Window 2.15
import QtQuick.Controls 2.15

Window {
    width: 640
    height: 480
    visible: true
    title: qsTr("Hello World")

    Button {
        text: "I am a Button"
    }
}

QML Object

QML的基本概念是QML Object,比如Button就是一个QML Object。可以把QML Object理解为类,有方法(函数)、信号(函数)、槽函数(函数)、属性(public的成员变量),这些东西统称为QML Object Attributes,有如下:

信号 槽

信号的种类一般是三种:
(a)用户输入产生
比如clicked、touch,鼠标、键盘等等。
(b)属性被修改发出的信号
绝大多数属性被修改的时候能够产生名称为 <属性名>Changed 的信号,然后也会有 on<属性名>Changed 的信号处理器
(c)附加信号
附加属性提供的信号,也会有附加信号提供的信号处理器

在qml中槽被称作“信号处理器”,实际还是c++里的槽函数。
在qt实现的很多模块的对象中(比如Button)“信号”一般都会对应一个“信号处理器”命名方式则是on
下图是Button的信号列表(索引中可以看到,实际是button的父类AbstractButton)

比如clicked()就有一个onClick()的“信号处理器”

connect

自定义信号

QML 与 java script

可以在qml文件中定义js函数

也可以把js函数写到单独的文件中,比如main.js,qml文件中的用法如下:

可以把js函数链接到信号:

标签:函数,信号处理器,Button,Object,QML,信号
From: https://www.cnblogs.com/feipeng8848/p/16656577.html

相关文章