`
ydbc
  • 浏览: 718565 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

QML与c++交互学习笔记(二)

 
阅读更多


1.导出Person类中的成员方法

2.具体导出过程

导出的方法

1.使用Q_INVOKABLE

2.使用槽机制


3.具体代码



// person.h
#ifndef PERSON_H
#define PERSON_H
#include <QObject>
class Person : public QObject
{
    Q_OBJECT
public:
    explicit Person(QObject *parent = 0);
    Q_INVOKABLE void FirstEcho(void);
public slots:
    void SecondEcho(void);
};
#endif // PERSON_H


// person.cpp
#include "person.h"
Person::Person(QObject *parent) :
    QObject(parent)
{
}
void Person::FirstEcho(void)
{
    // 简简单单打印一句话
    qDebug("call Person::FirstEcho");
}
void Person::SecondEcho(void)
{
    qDebug("call Person::SecondEcho");
}


// main.cpp
#include <QtGui/QApplication>
#include <QtDeclarative/QDeclarativeView>
#include <QtDeclarative/QDeclarativeEngine>
#include <QtDeclarative/QDeclarativeComponent>
#include "person.h"
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    qmlRegisterType<Person>("People",1,0,"Person");
    //qmlRegisterType<Person>();
    QDeclarativeView qmlView;
    qmlView.setSource(QUrl::fromLocalFile("../UICtest/UICtest.qml"));
    qmlView.show();
    return a.exec();
}


// UICtest.qml
import Qt 4.7
import People 1.0 //如果是qmlRegisterType<Person>(); 导出就可以注释这条
Rectangle {
    width: 640
    height: 480
    Person{ id: per;}
    MouseArea{
        anchors.fill: parent;
        onClicked:{
            per.FirstEcho();
            per.SecondEcho();
        }
    }
}


说明:

这里导出了两个函数分别是FirstEchoSecondEcho两个函数,这两个函数本别是使用

FirstEcho使用使用Q_INVOKABLE导出,SecondEcho直接使用槽

调用函数在控制台输出一些信息,这里是在鼠标点击界面后出发的

分享到:
评论

相关推荐

    QML与C++交互QML与C++交互

    QML与C++交互QML与C++交互QML与C++交互QML与C++交互QML与C++交互QML与C++交互QML与C++交互QML与C++交互QML与C++交互QML与C++交互QML与C++交互QML与C++交互QML与C++交互QML与C++交互QML与C++交互QML与C++交互QML与C++...

    QML 与 C++交互 - 02 C++暴露方法到QML

    本系列会介绍几种QML与C++进行数据交互的方法,包括信号槽的链接,QML调用C++类的方法等。 本代码为第二篇《QML 与 C++交互 - 02 C++暴露方法到QML》的示例demo

    QML 与 C++交互 - 01QML访问C++属性

    本系列会介绍几种QML与C++进行数据交互的方法,包括信号槽的链接,QML调用C++类的方法等。 本文为第一篇:QML访问C++属性。可以访问我的博客查看代码解释。

    QML2与C++交互

    关于QML与C++交互具体实例,里面涉及QML与C++进行数据交互等功能

    Qt之QML与 C++ 交互.docx

    1. C++ 对象注册到 QML,QML 访问 C++ 对象; 2. QML 暴露对象给 C++ 进行交互; 3. C++ 创建 QML 对象并进行交互; 4. C++ 对象与 QML 通过信号槽交互。 文档详细描述了四种方式的使用

    qml与C++交互代码

    qml与C++交互代码

    QML与C++交互,解压后路径去掉中文.rar

    博客的相关代码,演示QML与C++的交互。博客地址https://blog.csdn.net/gongjianbo1992/article/details/87965925

    QML与c++交互在地图上增加mark的源代码

    QML与c++交互在地图上增加mark的源代码

    QML与c++交互

    QML c++ 的详细介绍 和大量交互例子

    C++和QML交互

    Qt 提供了两种在 QML 环境中使用 C++ 对象的方式: 1. 在 C++ 中实现一个类,注册到 QML 环境中, QML 环境中使用该类型创建对象 2. 在 C++ 中构造一个对象,将这个对象设置为 QML 的上下文属性,在 QML 环境中直接...

    QML与C++交互使用

    我们知道 ,通过Qt Declarative module ,C++可以动态创建和操纵QML的组件(cpmponents) ,我们利用这些API使用C++来拓展我们的QML程序,反过来也可以将QML嵌入到你的C++程序中。通过Qt的元对象系统( Qt‘s meta...

    Qml与C++通信交互

    Qml与C++通信交互Demo,只有最简单的Qml界面调用C++类的函数

    qml与c++交互

    NULL 博文链接:https://tcspecial.iteye.com/blog/2034585

    Qt实例分析——QML调用C++方法, C++调用QML(

    QML调用C++方法, C++调用QML,C++发送信号QML接收

    Qt Qml实例分析—QML调用C++方法, C++调用QML

    QML调用C++方法, C++调用QML,C++发送信号QML接收

    c++与QML相互通信 数据交互

    c++数据传入qml, qml数据返回给c++,数据互传 ,两种方式

    QML与C++混合编程.pdf

    C++与QML的交互是通过注册C++对象给QML环境得以实现的: 在C++实现中,非可视化的型别均为QObject的子类,可视化的类型均为QDeclarativeItem的子类。注意:QDeclarativeItem等同于QML的Item类。 如果用户想要定义...

    TableEdit-0.1.5_qml_C++_

    使用qml实现的表格控件,支持JSON文件的导入,支持表格的增删改查操作。支持表格的编辑,撤销等操作。同时内嵌搜索功能

    QML--实现与HTML的交互

    QML--实现与HTML的交互

    QML与c++混编 测试

    Qt 5.6.2写的的小例子,实现QML调用C++的信号和槽函数,

Global site tag (gtag.js) - Google Analytics