Qt工作笔记-QML与C++交互
程序运行截图如下:
逻辑:
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++交互相关推荐
- Qt工作笔记-QML界面与QWidgets界面相互交互
C++要做的事情: 1.QML中注册C++类型(qmlRegisterType) 2.获取元对象树,从中提取注册的指针[这样就和普通的对象一样了] qml要做的事情: 1.import注册的C++类型 ...
- Qt工作笔记-QML自定义圆形进度条(C++后端处理数据)
目录 原理 源码 原理 1.使用QML中的Canvas绘制圆形,用一种颜色,说明是未读取,再用另外一种颜色覆盖到原来的颜色!说明进度! 2.使用setContextProperty把C++中的某个继承 ...
- Qt工作笔记-QML中TextInput设置默认值,以及使用正则表达式只能输入整数
程序运行截图如下: 源码如下: import QtQuick 2.5 import QtQuick.Window 2.2Window {visible: truewidth: 640height: 4 ...
- Qt工作笔记-发送端发送Json格式的数据包,接收端解析数据包
原理以及运行 原理是因为QJsonDocument提供了一个函数toJson 可以直接把Json数据转成QByteArray,这样就可以直接发送数据包,然后再按照常规方法解析即可,本源码中含解析内容, ...
- Qt工作笔记-Qt元对象系统解析【2合1】
博文转载地址: https://blog.csdn.net/spwper/article/details/51332187 说Qt信号与槽是一个很好机制,不如说Qt的元对象系统很强大.这也是大家讲Qt ...
- Qt工作笔记-通过C++使widgets与QQuick交互(包含qml界面对象与C++对象映射)
目录 理论及程序运行 源码 理论及程序运行 这里要注意,通过qmlRegisterType函数去注册一个QML类! 下面再指明一个关键的问题,如何把QML界面的对象映射到C++呢! 可以有如下的处理: ...
- Qt工作笔记-第一个QML(QQuickView显示QML文件)
程序运行截图如下: 程序结构如下: 代码如下: main.cpp #include <QApplication> #include <QDir> #include <QQ ...
- C/C++|Qt工作笔记-4种方法判断当前对象(类)名或标识(继承发,typeid法,元对象className()法,Q_CLASSINFO法)
回想起3个月前,刚刚参加工作也做过类似的笔记,但只有2种方法,估计刚毕业没有什么墨水,经过3个月时间又多了2种方法: 这些方法都可用于RTTI 第一个方法是继承发(C++中很推荐用这个,感觉用这个结构 ...
- Qt工作笔记-Qt5中中文编码方面的笔记
目前在使用国内的数据库和实时库接口. 说句实话,国内的东西与国外的东西比,在用户体验和接口调用上比还是存在很大的距离. 个人喜欢用QString去存储数据.个人感觉QTL比STL开发起来要快点 这里有 ...
最新文章
- 将 Silverlight 与网页集成【转载】
- 在阿里,我们这样帮助用户实现业务云原生化迁云
- windows如何恢复默认pycharm配置
- SAP项目文档 清单 考核标准
- 数据库 流量切分_私域流量之社群运营技巧,社群运营技巧解析
- DataGrip汉化方法
- aws lambda_在AWS Lambda上运行“ Hello World”
- ssh1—xshell免密登录
- Python 爬虫之代理服务器
- 转:高级PHP应用程序漏洞审核技术
- 计算机test的应用,例举内存检测工具memtest详细使用教程
- exce读、写与下载汇总 后端导出excel POI 方志朋如何优雅的导出Excel
- Celeste中的平台游戏设计(思维导图)
- SC0084 AT32F407/437在UCOSIII上运行LwIP协议栈
- (小知识点) textview.setBackground不起作用
- [论文解读] Concolic Testing for Deep Neural Networks
- idea2018下载-补丁破解激活
- 关于安全领域方向上学习的一点个人见解
- graphql的调用
- 【pytorch】ECA-NET注意力机制应用于ResNet的代码实现
热门文章
- 地产遇冷之际,行业竞争加剧,房企如何走出营销低谷,先声夺人?
- 智慧水务建设纪实:数字可视化大屏+智能AI,凭啥这么强?
- 对USB驱动程序的理解
- 传闻中“日进斗金”的程序员,你真的了解吗?看完还想当程序员?
- 产品经理是条狗:前端,你怎么看?
- 实变函数与泛函分析课本pdf_实变函数与泛函分析
- nvidia.dali:深度学习加速神器!
- 如何使用Aimersoft iMusic for Mac从 Android 手机备份歌曲到 PC/Mac?
- 1.6编程基础之一维数组_04数组逆序重放
- 第60课 比特超市 《小学生C++趣味编程》