【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了

相关推荐
从此不归路13 分钟前
Qt5 进阶【13】桌面 Qt 项目架构设计:从 MVC/MVVM 到模块划分
开发语言·c++·qt·架构·mvc
无小道2 小时前
QT——简介
qt
xmRao3 小时前
Qt+FFmpeg 实现音频重采样
qt·ffmpeg·音视频
专注echarts研发20年3 小时前
如何实现 QLabel 的 Click 事件?Qt 富文本超链接优雅方案
开发语言·qt
小小码农Come on4 小时前
QT控件之QTabWidget使用
开发语言·qt
Li_Zhi_Yao4 小时前
linux下qt快速搭建环境
linux·运维·qt
从此不归路4 小时前
Qt5 进阶【12】JSON/XML 数据协议处理:与后端/配置文件的对接
xml·开发语言·c++·qt·json
艾莉丝努力练剑4 小时前
【QT】信号与槽
linux·开发语言·c++·人工智能·windows·qt·qt5
轩情吖4 小时前
Qt的窗口(二)
开发语言·c++·qt·qdialog·对话框·桌面级开发
誰能久伴不乏15 小时前
【Qt实战】工业级多线程串口通信:从底层协议设计到完美收发闭环
linux·c++·qt