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

相关推荐
星火撩猿3 分钟前
ubantu中下载编译安装qt5.15.3
开发语言·qt
机器视觉知识推荐、就业指导3 小时前
开源QML控件:进度条滑动控件(含源码下载链接)
前端·qt·开源·qml
꧁坚持很酷꧂7 小时前
Linux Ubuntu18.04下安装Qt Craeator 5.12.9(图文详解)
linux·运维·qt
ChoSeitaku7 小时前
17.QT-Qt窗口-工具栏|状态栏|浮动窗口|设置停靠位置|设置浮动属性|设置移动属性|拉伸系数|添加控件(C++)
c++·qt·命令模式
OpenC++10 小时前
【C++QT】Buttons 按钮控件详解
c++·经验分享·qt·leetcode·microsoft
我真的不会C11 小时前
QT窗口相关控件及其属性
开发语言·qt
云小逸12 小时前
【QQMusic项目界面开发复习笔记】第二章
c++·qt
꧁坚持很酷꧂12 小时前
配置Ubuntu18.04中的Qt Creator为中文(图文详解)
开发语言·qt·ubuntu
快乐飒男13 小时前
Qt基础009(HTTP编程和QJSON)
qt
此刻我在家里喂猪呢15 小时前
Qt指ModbusTcp协议的使用
qt