qt与ui项目的简单tcp通信
我想创建一个简单的Tcp通信项目,但我遇到了一些问题,我不知道如何解决这个问题。当我试图找到解决方案时,所有人都告诉我在.pro文件中添加此代码(QT+=network),但在ui项目中,我没有任何pro文件,因此我不知道如何找到解决方案 //社区qt与ui项目的简单tcp通信,qt,tcp,qtcpsocket,qtnetwork,Qt,Tcp,Qtcpsocket,Qtnetwork,我想创建一个简单的Tcp通信项目,但我遇到了一些问题,我不知道如何解决这个问题。当我试图找到解决方案时,所有人都告诉我在.pro文件中添加此代码(QT+=network),但在ui项目中,我没有任何pro文件,因此我不知道如何找到解决方案 //社区 #ifndef COMMU_H #define COMMU_H #include <QtWidgets/QMainWindow> #include "ui_commu.h" #include <QtNetw
#ifndef COMMU_H
#define COMMU_H
#include <QtWidgets/QMainWindow>
#include "ui_commu.h"
#include <QtNetwork/QTcpSocket>
#include <QObject>
#include <QString>
class commu : public QMainWindow
{
Q_OBJECT
public:
commu(QWidget *parent = 0);
~commu();
void start(QString address, quint16 port);
private:
Ui::commuClass ui;
QTcpSocket client;
public slots:
void startTransfer();
};
#endif // COMMU_H
您需要启用在Qt项目设置中使用的模块。您可以在Qt文档中找到更多信息: 你也不应该像这样使用includes
#包括
您应该始终只包含没有路径的类文件,如
#包括
所有模块也是如此,所以在为项目启用模块后跳过QtNetwork等。为什么不使用qmake构建项目?我使用Visual Studio进行Qt项目。我如何使用它?我是Qt新手。如果你是Qt新手,那么你应该从阅读更多教程开始。visualstudio有一个Qt集成模块。您可能应该使用它。我可以创建一些与Qt集成的项目,没有任何问题,现在我需要解决TCP连接问题。所以我在问一个问题…如果没有QtNetwork/我在Visual Studio中收到一个致命错误:致命错误C1083:无法打开包含文件:“QTcpSocket”:没有这样的文件或目录
#include "commu.h"
#include <QtNetwork/QHostAddress>
commu::commu(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
connect(&client, SIGNAL(connected()),this,SLOT(startTransfer()));
}
commu::~commu()
{
client.close();
}
void commu::start(QString address, quint16 port)
{
QHostAddress addr(address);
client.connectToHost(addr, port);
}
void commu::startTransfer()
{
client.write("Hello, world", 13);
}
#include "commu.h"
#include <QtWidgets/QApplication>
#include <QtCore>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
commu w;
w.show();
return a.exec();
commu client;
client.start("127.0.0.1", 8888);
}
1>commu.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall QTcpSocket::~QTcpSocket(void)" (__imp_??1QTcpSocket@@UAE@XZ) referenced in function "public: virtual __thiscall commu::~commu(void)" (??1commu@@UAE@XZ)
1>commu.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall QTcpSocket::QTcpSocket(class QObject *)" (__imp_??0QTcpSocket@@QAE@PAVQObject@@@Z) referenced in function "public: __thiscall commu::commu(class QWidget *)" (??0commu@@QAE@PAVQWidget@@@Z)
1>commu.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall QHostAddress::~QHostAddress(void)" (__imp_??1QHostAddress@@QAE@XZ) referenced in function "public: void __thiscall commu::start(class QString,unsigned short)" (?start@commu@@QAEXVQString@@G@Z)
1>commu.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall QHostAddress::QHostAddress(class QString const &)" (__imp_??0QHostAddress@@QAE@ABVQString@@@Z) referenced in function "public: void __thiscall commu::start(class QString,unsigned short)" (?start@commu@@QAEXVQString@@G@Z)
1>c:\users\sel\documents\visual studio 2010\Projects\commu\Win32\Debug\\commu.exe : fatal error LNK1120: 4 unresolved externals