一、目标:
QtQuick图形化界面与Linux服务器建立TCP连接实现双向通信
二、核心思想:
利用Qt库的QTcpSocket类的方法,在C++中实现逻辑通信功能,注册到QML环境中调用
(QML与C++混合编程)
三、具体实现过程:
(1)C++逻辑通信实现
tcpSocket.h
#ifndef TCPSOCKET_H
#define TCPSOCKET_H
#include <QObject>
#include <QTcpSocket>
class TcpSocket : public QObject
{
Q_OBJECT
public:
explicit TcpSocket(QObject *parent = nullptr);
~TcpSocket();
Q_INVOKABLE bool connect(QString ip,quint16 port);
Q_INVOKABLE bool sendMessage(QString sendStr);
Q_INVOKABLE QString receiveMesage();
signals:
public slots:
private:
QTcpSocket *m_socket;
};
#endif // TCPSOCKET_H
其中,注册到QML环境中的类必须继承自QObject&