文章目录
前言
本文主要介绍,如何将QML 中的信号连接到C++ 中的槽函数
软硬件环境:
硬件:PC
软件:windows11 Qt5.12.2
一、QML Signal and Handler Event System
如下图所示, 是 Qt 官方帮助文档中对信号和事件处理系统的相关介绍
可以看到, 信号和事件处理之间有多种连接方式,本文只讨论 QML 中定义的信号和 C++ 中定义的槽函数之间的连接,使用 Component.onCompleted 和 connect 来实现
二、QML信号连接到c++的槽函数代码实例
1. 创建一个QML 工程
详见我之前的文章 使用Qt Creator 创建 一个 QML 工程(一)
2. 用C++ 实现一个QML Types
详见我之前的文章 在QML中调用 C++ 函数的方法(四)
3. 代码实例
修改mytype.h 和 mytype.cpp 内容如下
定义一个槽函数 doSimething()
#ifndef MYTYPE_H
#define MYTYPE_H
#include <QObject>
class MyType : public QObject
{
Q_OBJECT
public:
explicit MyType(QObject *parent = nullptr);
Q_INVOKABLE int value();
Q_INVOKABLE void setvalue(int value);
signals:
void valueChanged();
public slots:
void