ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Qt中C++与QML交互

2022-08-04 09:31:36  阅读:131  来源: 互联网

标签:QML ThreadTrackMeasure double void C++ qml public Qt


C++端发送信号,qml端定义槽函数进行处理

note: 本篇只是用来说明C++与qml使用信号和槽的连接方式;
C++部分

在main.cpp中将发送信号的类注册进qml 中,qml可以使用;
qmlRegisterType<ThreadTrackMeasure>("ThreadTrackMeasure",1,0,"ThreadTrackMeasure");
// ThreadTrackMeasure类文件

class ThreadTrackMeasure : public QThread
{
    Q_OBJECT
public:
    ThreadTrackMeasure();
signals:
    void measureResult(double x,double y,double z);
public slots:
    void endMeasure();
    void startMeasure();
protected:
    void run() Q_DECL_OVERRIDE;
private:
    bool m_stop = false;
    Measurement_Gui meausreOperator;
};

qml部分

导入文件
import ThreadTrackMeasure 1.0

// 定义
ThreadTrackMeasure
{
    id: threadTrackMeasure
}
// 在qml中定义槽函数
function onMeasureResult(x,y,z)
{
    ...
}
...
在只执行一次的地方进行,信号和槽的关联
Component.onCompleted: {
    // 连接信号和槽
    threadTrackMeasure.measureResult.connect(onMeasureResult)
}

标签:QML,ThreadTrackMeasure,double,void,C++,qml,public,Qt
来源: https://www.cnblogs.com/ghghhh/p/16549474.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有