QtQuick串口编程Demo

本文介绍如何在QtQuick界面下利用QSerialPort进行串口通信的实现,包括C++逻辑处理和QML调用。通过C++的QSerialPort类设置串口参数,QML界面传递参数并调用C++方法完成数据的发送和接收。最终展示了运行结果,并提及界面采用了谷歌Material风格。
摘要由CSDN通过智能技术生成

一、目标:

实现QtQuick界面,操控串口通信,进行串口数据的接收和发送


二、核心思想:

利用Qt库的QSerialPort类,使用C++实现串口数据的逻辑通信,并接受QtQuick界面的参数设置,在QML中调用C++实现的函数进行实际的数据收发

(QML与C++混合编程)


三、具体实现:

(1)C++中的逻辑实现

首先看serialport.h文件

#ifndef SERIALPORT_H
#define SERIALPORT_H

#include <QObject>
#include <QSerialPort>

class SerialPort : public QObject
{
    Q_OBJECT
public:
    explicit SerialPort(QObject *parent = nullptr);
    ~SerialPort();

    Q_INVOKABLE bool serialConnect(QString port,QString baudrate,QString databits,QString parity,QString stopbits);
    Q_INVOKABLE QString serialRead();
    Q_INVOKABLE bool serialWrite(QString sendStr);

signals:

public slots:

private:
    QSerialPort *m_serial;
};

#endif // SERIALPORT_H

其中,注册到QML环境中的类必须继承自QObject,在类中声明“Q_OBJECT”才能在C++中定义信号和槽,需要注册到QML环境中的,变量属性加关键字“Q_PROPERTY”,函数方法加关键字“Q_INVOKABLE”,定义了一个QSerialPort的对象,将在后续连接和通信中实现

serialport.cpp

#include "serialport.h"

SerialPort::SerialPort(QObject *parent) : QObject(parent)
{
    m_serial = new Q
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值