1. 把主類指針this傳給其他類,tcpClientSocket = new TcpClient(this);
//ex2.cpp
#include "ex2.h"
#include "ui_ex2.h"
Ex2::Ex2(QWidget *parent)
: QDialog(parent)
, ui(new Ui::Ex2)
{
ui->setupUi(this);
tcpClientSocket = new TcpClient(this);
}
Ex2::~Ex2()
{
delete ui;
}
void Ex2::on_pushButtonTcpConnect_clicked()
{
tcpClientSocket->Test();
}
2. 把ui類改為公共類
//ex2.h
#ifndef EX2_H
#define EX2_H
#include <QDialog>
#include "tcpclient.h"
QT_BEGIN_NAMESPACE
namespace Ui { class Ex2; }
QT_END_NAMESPACE
class Ex2 : public QDialog
{
Q_OBJECT
public:
Ex2(QWidget *parent = nullptr);
~Ex2();
Ui::Ex2 *ui; //改為公共類
TcpClient *tcpClientSocket;
private slots:
void on_pushButtonTcpConnect_clicked();
private:
//Ui::Ex2 *ui; //私有類
QSerialPort *serial;
};
#endif // EX2_H
3. 保存主類傳來(lái)的指針保存,通過該指針調(diào)用UI中的控件
//tcpclient.cpp
#include "tcpclient.h"
#include "ex2.h"
TcpClient::TcpClient(Ex2 *parent)
{
socket = new QTcpSocket();
pUi = parent;
}
TcpClient::~TcpClient()
{
delete socket;
}
void TcpClient::Connect()
{
}
void TcpClient::Test()
{
pUi->ui->textEditMy1->setText("Test");
}
//tcpclient.h
#ifndef TCPCLIENT_H
#define TCPCLIENT_H
#include <QTcpSocket>
//#include "ex2.h"
#include "ui_ex2.h"
class Ex2; // 聲明類
class TcpClient
{
public:
TcpClient(Ex2 *parent);
~TcpClient();
void Connect();
void Test();
Ex2 *pUi;
private:
QTcpSocket *socket;
};
#endif // TCPCLIENT_H
4. 在pro文件中增加QT += network
//ex2.pro
QT += core gui
QT += serialport
QT += network
# disable C4819 warning
QMAKE_CXXFLAGS_WARN_ON += -wd4819
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
CONFIG += c++11
# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS
# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \
main.cpp \
ex2.cpp \
tcpclient.cpp
HEADERS += \
ex2.h \
tcpclient.h
FORMS += \
ex2.ui
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
5. 效果
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-636351.html
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-636351.html
到了這里,關(guān)于Qt 6. 其他類調(diào)用Ui中的控件的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!