运行截图如下:

源码如下:

widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>namespace Ui {
class Widget;
}class Widget : public QWidget
{Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);~Widget();signals:void sendMsg();public slots:void qmlSlot();private:Ui::Widget *ui;
};#endif // WIDGET_H

main.cpp

#include "widget.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();return a.exec();
}

widget.cpp

#include "widget.h"
#include "ui_widget.h"
#include <QUrl>
#include <QMetaObject>
#include <QDebug>
#include <QMetaObject>Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);ui->quickWidget->setSource(QUrl("qrc:/test.qml"));QObject *pRoot = (QObject*)ui->quickWidget->rootObject();Q_ASSERT(pRoot);connect(pRoot, SIGNAL(qmlSignal()), this, SLOT(qmlSlot()));connect(ui->pushButton, SIGNAL(clicked(bool)), pRoot, SIGNAL(cSignal()));const QMetaObject *metaObject=pRoot->metaObject();const QMetaObject *thisObject=this->metaObject();
}Widget::~Widget()
{delete ui;
}void Widget::qmlSlot()
{ui->pushButton->setText("qmlSlot called!");
}

test.qml

import QtQuick 2.0Rectangle {id: rootcolor: "green"Text {id: myTexttext: qsTr("hello")font.pixelSize: 70color: "red"anchors.centerIn: parent}signal qmlSignalsignal cSignalMouseArea {anchors.fill: parentonClicked: qmlSignal()}onCSignal: {root.color = "yellow"myText.text = "how are you?"}
}

C++与QML信号交互(非Q_PROPERTY法)相关推荐

  1. Qml学习笔记:cpp与qml的交互调用方式

    Qml学习笔记:cpp与qml的交互调用方式 如何用在cpp中调用qml的方法 main.qml main.cpp 如何在qml中调用C++的方法函数 main.cpp main.qml 如何使用qm ...

  2. MotoSimEG-VRC软件:多机器人信号交互与PLC功能

    目录 概述 I/O信号交互连接方法 内置PLC功能使用 运行测试 本文已经首发在个人微信公众号:工业机器人仿真与编程(微信号:IndRobSim),欢迎关注! 概述 现实的机器人生产线中上下游工位上的 ...

  3. QML 信号和处理程序事件系统

    QML信号和处理程序事件系统 信号和处理程序事件系统 使用信号处理程序接收信号 属性更改信号处理程序 使用连接类型 附加信号处理程序 向自定义QML类型添加信号 将信号连接到方法和信号 信号对信号连接 ...

  4. 树的宽度 递归法和非递归法

    递归法思路: 建立一个数组,count[1]表第1层节点总数,即宽度,count[2]表第二层节点总数,依次类推 用先序遍历二叉树,每深入一层就把该层的节点个数加1,最大节点数即树的宽度 代码如下: ...

  5. 树的高度 递归法和非递归法

    递归法思路: 树的高度即节点子树的高度+1(节点子树的高度即左子树高度,右子树高度的最大值) 代码如下: // Height_Recursive 递归法求树的高度 int Height_Recursi ...

  6. 《剑指offer》非递归法判定二叉树是否是对称的

    题目:请实现一个函数,用来判断一颗二叉树是不是对称的.注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的. 解析:该非递归法有点傻傻的,思想是利用队列进行层次遍历.然后翻转该二叉树,再层次遍 ...

  7. 递归与非递归法实现链表相加 CC150 V5 2.5题 java版

    前言:这是一道很有意思的题目,原题如下: You have two numbers represented by a linked list, where each node contains a s ...

  8. 递归函数就兔子数C语言,【C语言】求斐波那契(Fibonacci)数列通项(递归法、非递归法)...

    意大利的数学家列昂那多·斐波那契在1202年研究兔子产崽问题时发现了此数列.设一对大兔子每月生一对小兔子,每对新生兔在出生一个月后又下崽,假若兔子都不死亡.问:一对兔子,一年能繁殖成多少对兔子?题中本 ...

  9. 在 C++ 中与 QML 对象交互

    简述 所有的 QML 对象类型 - 无论由引擎内部实现还是由第三方源定义,都是 QObject 派生的类型.这意味着,QML 引擎可以使用 Qt 元对象系统动态实例化任何 QML 对象类型并检查创建的 ...

最新文章

  1. 1毛钱的CDN你家的网站会用吗?
  2. docker: 解决centos7下cgroup.procs: no such device的错误
  3. 06_一对一和一对多
  4. edem颗粒替换_EDEM后处理问题的大汇总,方便易懂!
  5. java开发资源分享(视频,源码,项目)
  6. 计算机图标用鼠标双击和右键都无法启动,电脑桌面只有“我的电脑”图标双击找不开,用右键资源管理器能打开,为什么...
  7. 一个人越来越有潜力的3个迹象
  8. 揭秘2018图灵奖评选:Jeff Dean李开复和Lecun写信推荐Hinton
  9. Linux 命令(31)—— find 命令
  10. RTT distribution of Internet
  11. 在线小说网站的设计与实现(附源码)
  12. vue获取微信登陆权限_vue微信授权登录
  13. 知识点梳理:基本矩阵F、本质矩阵E、单应矩阵H
  14. 密码攻防系列文章27-web后台登录口令暴力破解及防御
  15. C语言this is a string,求一道C语言题目The aim of this exercise is to write a C program tha
  16. 机器学习--西瓜书思维导图
  17. 红蓝攻防演练过程中零失陷经验分享
  18. 局域网内PC通过笔记本共享上网
  19. Cell | 深度突变学习预测SARS-CoV-2受体结合域组合突变对ACE2结合和抗体逃逸的影响...
  20. scrapy框架开发爬虫实战——采集BOSS直聘信息【爬虫进阶】

热门文章

  1. 少走弯路的10个忠告
  2. Linux下的常用软件列表
  3. HTML5人喜欢用来调侃自己生活状态的话
  4. 云计算开发学习笔记:Python3迭代器与生成器
  5. 第十三节:易学又实用的新特性:for...of
  6. 性能优化篇(4):千万别使用CSS表达式
  7. 2014年最受欢迎WEB前端UI框架
  8. 大数据2019年的三大趋势你看了吗?
  9. c++ qt获取电脑的内存_Qt官方示例信号量
  10. python-OpenCV之numpy数组操作