【QML COOK】- 008-自定义属性

前面介绍了用C++定义QML类型,通常在使用Qt Quick开发项目时,C++定义后端数据类型,前端则完全使用QML实现。而QML类型或Qt Quick中的类型时不免需要为对象增加一些属性,本篇就来介绍如何自定义属性。

  1. 创建项目,并编辑Main.qml
javascript 复制代码
import QtQuick

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

    MouseArea {
        anchors.fill: parent
        onClicked: {
            sender.aInt += 1
        }
    }

    Item {
        id: sender
        property int aInt

        onAIntChanged:() =>  {
                        console.log("Sender Now aInt is :", aInt)
                     }
    }

    Item {
        id: receiver

        Connections {
            target: sender
            function onAIntChanged(message : string) {
               console.log("Receiver Now aInt is :", sender.aInt)
            }
        }
    }
}
  • 在sender对象中通过关键字property创建了一个int类型的aInt属性
  • 定义属性后QML会自动定义一个槽名为onXXXXChanged。因此结合上篇介绍的槽的相关内容,我们就可以在本对象和其他对象中监控自定义属性的变化了
  1. 执行程序

在窗口中点击鼠标便可以在Qt Creator中看到如下Log了

相关推荐
会飞的胖达喵4 小时前
Qt Widgets 应用程序核心类 - QApplication 详解
qt
大橘4 小时前
【qml-11】Quick3D实现机器人欧拉旋转、拖动视角
qt·3d·机器人·qml
枫叶丹44 小时前
【Qt开发】输入类控件(三)-> QComboBox
开发语言·qt
攻城狮7号6 小时前
【AI时代速通QT】第八节:Visual Studio与Qt-从项目迁移到多版本管理
c++·qt·跨平台·visual studio·qt vs tools
郝学胜-神的一滴6 小时前
QAxios研发笔记(一):在Qt环境下,构建Promise风格的Get请求接口
开发语言·c++·spring boot·qt·ajax·前端框架·软件工程
无敌最俊朗@12 小时前
C++ 序列容器深度解析:vector、deque 与 list
开发语言·数据结构·数据库·c++·qt·list
Larry_Yanan12 小时前
QML学习笔记(十五)QML的信号处理器(MouseArea)
c++·笔记·qt·学习·ui
Larry_Yanan14 小时前
QML学习笔记(十七)QML的属性变更信号
javascript·c++·笔记·qt·学习·ui
轩情吖15 小时前
Qt常用控件之QSpinBox
开发语言·c++·qt·控件·桌面级开发·qspinbox·微调框
掘根15 小时前
【Qt】输入类控件2——SpinBox,DateEdit,TimeEdit,Dial,Slider
开发语言·qt