Попытка подключить QTcpServer к GUI с сигналами

Я создал соединение между сервером и клиентом, оно отлично работает в консоли, но я не смог подключить свой класс QTcpServer к графическому интерфейсу с сигналами и слотами. Вот мой код:

ServerTCP.cpp

ServerTcp :: ServerTcp (QWidget *parent)
{
listen(QHostAddress::Any,4000);
QObject:: connect(this, SIGNAL(newConnection()),
this, SLOT(connectionRequest()));
}

void ServerTcp :: connectionRequest()
{

emit IHM_connection();
clientConnection = nextPendingConnection();

QObject:: connect(clientConnection, SIGNAL(readyRead()),
this, SLOT(read()));
}

void ServerTcp::read()
{

QString ligne;
while(clientConnection->canReadLine())
{
ligne = clientConnection->readLine();
emit IHM_text(ligne);
}
QTextStream text(clientConnection);}

ManinWindow.cpp

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QObject::connect(&server,SIGNAL(IHM_connetion()),this,SLOT(connectionRequested()));
QObject::connect(&server,SIGNAL(read(QString)),this,SLOT(print_text(QString)));
}void MainWindow::on_quitButton_clicked()
{
qApp->quit();
}

void MainWindow::print_text(QString text){
ui->log->append("message : " + text);
}

void MainWindow::connectionRequested(){
ui->log->append("connection OK!");
}

MainWindow::~MainWindow()
{
delete ui;
}

-1

Решение

У вас есть опечатка в методе подключения: IHM_connetion

QObject::connect(&server,SIGNAL(**IHM_connetion**())

в то время как излучаемый сигнал:

 emit IHM_connection()

QObject: connect возвращает значение bool, которое указывает, было ли соединение с сигнальным слотом успешным. Проверка этого значения (например, с помощью Q_ASSERT) является хорошей практикой и может сэкономить много времени в случае подобных опечаток. ,

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]