程序运行截图如下:

逻辑:

1.使用Q_PROPERTY宏让元对象能对这个数据成员进行访问

2.在QML系统中注册C++

3.qml进行调用,实现qml与C++的交互

源码如下:

testproperty.h

#ifndef TESTPROPERTY_H
#define TESTPROPERTY_H#include <QObject>class TestProperty : public QObject
{Q_OBJECT
public:explicit TestProperty(QObject *parent = 0);Q_PROPERTY(QString title READ title WRITE setTitle NOTIFY titleChanged)QString title();void setTitle(QString title);signals:void titleChanged();public slots:private:QString m_title;
};#endif // TESTPROPERTY_H

testproperty.cpp

#include "testproperty.h"
#include <QDebug>TestProperty::TestProperty(QObject *parent) : QObject(parent)
{}QString TestProperty::title()
{return m_title;
}void TestProperty::setTitle(QString title)
{m_title=title;qDebug()<<"TestProperty::setTitle(QString title) called! "<<title;emit titleChanged();
}

main.cpp

#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include "testproperty.h"int main(int argc, char *argv[])
{QGuiApplication app(argc, argv);qmlRegisterType<TestProperty>("TestProperty",1,0,"TestProperty");QQmlApplicationEngine engine;engine.load(QUrl(QStringLiteral("qrc:/main.qml")));return app.exec();
}

main.qml

import QtQuick 2.6
import QtQuick.Window 2.2
import TestProperty 1.0
import QtQuick.Controls 1.2Window {visible: truewidth: 640height: 480title: qsTr("Q_PROPERTY 实例")TextEdit{id:textEditwidth:240;font.family: "Helvetica"font.pointSize: 20color:"blue"}Rectangle{width: 100height:200color:"green"anchors.centerIn: parentButton{anchors.fill: parentfocus: trueonClicked:{testProperty.title=textEdit.text}}}TestProperty{id:testProperty}
}

Qt工作笔记-QML与C++交互相关推荐

  1. Qt工作笔记-QML界面与QWidgets界面相互交互

    C++要做的事情: 1.QML中注册C++类型(qmlRegisterType) 2.获取元对象树,从中提取注册的指针[这样就和普通的对象一样了] qml要做的事情: 1.import注册的C++类型 ...

  2. Qt工作笔记-QML自定义圆形进度条(C++后端处理数据)

    目录 原理 源码 原理 1.使用QML中的Canvas绘制圆形,用一种颜色,说明是未读取,再用另外一种颜色覆盖到原来的颜色!说明进度! 2.使用setContextProperty把C++中的某个继承 ...

  3. Qt工作笔记-QML中TextInput设置默认值,以及使用正则表达式只能输入整数

    程序运行截图如下: 源码如下: import QtQuick 2.5 import QtQuick.Window 2.2Window {visible: truewidth: 640height: 4 ...

  4. Qt工作笔记-发送端发送Json格式的数据包,接收端解析数据包

    原理以及运行 原理是因为QJsonDocument提供了一个函数toJson 可以直接把Json数据转成QByteArray,这样就可以直接发送数据包,然后再按照常规方法解析即可,本源码中含解析内容, ...

  5. Qt工作笔记-Qt元对象系统解析【2合1】

    博文转载地址: https://blog.csdn.net/spwper/article/details/51332187 说Qt信号与槽是一个很好机制,不如说Qt的元对象系统很强大.这也是大家讲Qt ...

  6. Qt工作笔记-通过C++使widgets与QQuick交互(包含qml界面对象与C++对象映射)

    目录 理论及程序运行 源码 理论及程序运行 这里要注意,通过qmlRegisterType函数去注册一个QML类! 下面再指明一个关键的问题,如何把QML界面的对象映射到C++呢! 可以有如下的处理: ...

  7. Qt工作笔记-第一个QML(QQuickView显示QML文件)

    程序运行截图如下: 程序结构如下: 代码如下: main.cpp #include <QApplication> #include <QDir> #include <QQ ...

  8. C/C++|Qt工作笔记-4种方法判断当前对象(类)名或标识(继承发,typeid法,元对象className()法,Q_CLASSINFO法)

    回想起3个月前,刚刚参加工作也做过类似的笔记,但只有2种方法,估计刚毕业没有什么墨水,经过3个月时间又多了2种方法: 这些方法都可用于RTTI 第一个方法是继承发(C++中很推荐用这个,感觉用这个结构 ...

  9. Qt工作笔记-Qt5中中文编码方面的笔记

    目前在使用国内的数据库和实时库接口. 说句实话,国内的东西与国外的东西比,在用户体验和接口调用上比还是存在很大的距离. 个人喜欢用QString去存储数据.个人感觉QTL比STL开发起来要快点 这里有 ...

最新文章

  1. 将 Silverlight 与网页集成【转载】
  2. 在阿里,我们这样帮助用户实现业务云原生化迁云
  3. windows如何恢复默认pycharm配置
  4. SAP项目文档 清单 考核标准
  5. 数据库 流量切分_私域流量之社群运营技巧,社群运营技巧解析
  6. DataGrip汉化方法
  7. aws lambda_在AWS Lambda上运行“ Hello World”
  8. ssh1—xshell免密登录
  9. Python 爬虫之代理服务器
  10. 转:高级PHP应用程序漏洞审核技术
  11. 计算机test的应用,例举内存检测工具memtest详细使用教程
  12. exce读、写与下载汇总 后端导出excel POI 方志朋如何优雅的导出Excel
  13. Celeste中的平台游戏设计(思维导图)
  14. SC0084 AT32F407/437在UCOSIII上运行LwIP协议栈
  15. (小知识点) textview.setBackground不起作用
  16. [论文解读] Concolic Testing for Deep Neural Networks
  17. idea2018下载-补丁破解激活
  18. 关于安全领域方向上学习的一点个人见解
  19. graphql的调用
  20. 【pytorch】ECA-NET注意力机制应用于ResNet的代码实现

热门文章

  1. 地产遇冷之际,行业竞争加剧,房企如何走出营销低谷,先声夺人?
  2. 智慧水务建设纪实:数字可视化大屏+智能AI,凭啥这么强?
  3. 对USB驱动程序的理解
  4. 传闻中“日进斗金”的程序员,你真的了解吗?看完还想当程序员?
  5. 产品经理是条狗:前端,你怎么看?
  6. 实变函数与泛函分析课本pdf_实变函数与泛函分析
  7. nvidia.dali:深度学习加速神器!
  8. 如何使用Aimersoft iMusic for Mac从 Android 手机备份歌曲到 PC/Mac?
  9. 1.6编程基础之一维数组_04数组逆序重放
  10. 第60课 比特超市 《小学生C++趣味编程》