Qt小例子学习50 - c++ 监控 Q_PROPERTY的值

zz/2024/5/21 21:22:08

Qt小例子学习50 - c++ 监控 Q_PROPERTY的值

MyQuickItem.cpp

#ifndef MYQUICKITEM_H
#define MYQUICKITEM_H#include <QDebug>
#include <QQuickItem>
class MyQuickItem : public QQuickItem
{Q_OBJECT
public:MyQuickItem(QQuickItem *parent = Q_NULLPTR) : QQuickItem(parent) {}protected:void componentComplete(){int index = metaObject()->indexOfProperty("nextColor");const QMetaProperty property = metaObject()->property(index);if (property.hasNotifySignal()){const QMetaMethod s = property.notifySignal();QString sig = QString("2%1").arg(QString(s.methodSignature()));connect(this, sig.toStdString().c_str(), this, SLOT(onNextColorChanged()));}}
private slots:void onNextColorChanged(){int index = metaObject()->indexOfProperty("nextColor");const QMetaProperty property = metaObject()->property(index);qDebug() << "color" << property.read(this);}
};#endif // MYQUICKITEM_H

main.qml

import QtQuick 2.9
import QtQuick.Window 2.2import com.eyllanes.items 1.0
Window {visible: truewidth: 640height: 480title: qsTr("Hello World")MyQuickItem {id: mitemproperty color nextColoronNextColorChanged: {console.log("The next color will be: " + nextColor.toString())}}Timer {interval: 500; running: true; repeat: trueonTriggered: mitem.nextColor = Qt.rgba( Math.random() % 256, Math.random() % 256, Math.random() % 256)}
}

main.cpp

#include "myquickitem.h"#include <QGuiApplication>
#include <QQmlApplicationEngine>int main(int argc, char *argv[])
{QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);QGuiApplication app(argc, argv);qmlRegisterType<MyQuickItem>("com.eyllanes.items", 1, 0, "MyQuickItem");QQmlApplicationEngine engine;engine.load(QUrl(QStringLiteral("qrc:/main.qml")));if (engine.rootObjects().isEmpty())return -1;return app.exec();
}

在这里插入图片描述


http://www.ngui.cc/zz/2727427.html

相关文章

leetcode - 0009. Palindrome Number

leetcode - 0009. Palindrome Number 题目大意 判断一个整数是否是回文数。回文数是指正序&#xff08;从左向右&#xff09;和倒序&#xff08;从右向左&#xff09;读都是一样的整数。 解题思路 判断一个整数是不是回文数。简单题。注意会有负数的情况&#xff0c;负数&a…

leetcode - 18. 四数之和

leetcode - 18. 四数之和 题目大意 给定一个数组&#xff0c;要求在这个数组中找出 4 个数之和为 0 的所有组合 解题思路 用 map 提前计算好任意 3 个数字之和&#xff0c;保存起来&#xff0c;可以将时间复杂度降到 O(n^3)。这一题比较麻烦的一点在于&#xff0c;最后输出…

leetcode - 26. 删除有序数组中的重复项

leetcode - 26. 删除有序数组中的重复项 题目大意 给定一个有序数组 nums&#xff0c;对数组中的元素进行去重&#xff0c;使得原数组中的每个元素只有一个。最后返回去重以后数组的长度值。 解题思路 这道题和第 27 题很像。这道题和第 283 题&#xff0c;第 27 题基本一致…

leetcode - [30. 串联所有单词的子串]

leetcode - [30. 串联所有单词的子串] 题目大意 给定一个源字符串 s&#xff0c;再给一个字符串数组&#xff0c;要求在源字符串中找到由字符串数组各种组合组成的连续串的起始下标&#xff0c;如果存在多个&#xff0c;在结果中都需要输出。 解题思路 这一题看似很难&…

leetcode - [35. 搜索插入位置]

leetcode - [35. 搜索插入位置] 题目大意 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 解题思路 给出一个已经从小到大排序…

c++高级编程学习笔记3

函数指针的类型别名 我们通常不考虑函数在内存中的位置&#xff0c;但每个函数实际上都位于某个特定地址。在 C中&#xff0c;可像使用数据那样使用函数。换言之&#xff0c;可使用函数的地址&#xff0c;就像使用变量那样。函数指针的类型取决于兼容函数的参数类型的返回类型…

Qt例子学习笔记 - Examples/Qt-6.2.0/qt3d/basicshapes-cpp

main.cpp //基本形状显示了 Qt 3D 提供的四种基本形状&#xff1a;圆环、圆柱、立方体和球体。 //该示例还展示了如何将 Qt 3D 场景嵌入到小部件中并与其他小部件连接。#include "scenemodifier.h"#include <QGuiApplication> #include <Qt3DRender/qcame…

Qt例子学习笔记 - Examples/Qt-6.2.0/assistant/simpletextviewer

main.cpp #include "mainwindow.h"#include <QApplication> //QApplication 专门为 QGuiApplication 提供了一些基于 QWidget 的应用程序所需的功能。 // 它处理特定于小部件的初始化、完成。 //对于任何使用 Qt 的 GUI 应用程序&#xff0c;无论应用程序在任…

Qt例子学习笔记 - Examples/Qt-6.2.0/charts/customchart

//自定义图表 //我们首先创建一个简单的线系列和一个图表对象。 QLineSeries *series new QLineSeries();*series<<QPointF(0,6)<<QPointF(9,4)<<QPointF(15,20) << QPointF(25, 12) << QPointF(29, 26);QChart *chart new QChart();chart->…

跨平台编译项目

1.linux:INCLUDEPATH “” 2.linux: { message(linux) } 3.message($$QMAKESPAEC) xzxiaqiu:~/study/csdn/day0/test/build$ ls /opt/Qt/Qt6/6.2.0/gcc_64/mkspecs/ aix-g integrity-x86 macx-clang solaris-cc-64 aix-g-64 linux…