Solved I need help ; the connect() is not working.
-
Greetings from Nepal.
We're building a desktop application using Qt Creator. In short, this application uses QTcpSocket and QTcpServer and the socket is multithreaded (using QThread) i.e. different users can connect at a time. MainWindow, MyServer and MyThread are different c++ class.
When a "Host "push button is pressed (mainwindow.cpp), the server is started (myserver.cpp). When a user is connected to the server, the server starts new thread for the connected user (mythread.cpp). When the user sends char/string, the Qthread class receives the char/string. But we want to pass the string to MainWindow and display using QLineEdit. Todo so, we use a signals and slot but it's not working.
// mainwindow.cpp myThread = new MyThread(); // MyThread is a c++ class connect(myThread,SIGNAL(chatText(QString)),this,SLOT(updateChat(QString))); ... ... .. void MainWindow::updateChat(QString str) { ui->plainTextEdit_chatInterface->setPlainText(str); }
mythread.cpp
//readyRead() void MyThread::readyRead() { data=socket->readAll(); emit chatText(data); }
-
Can you confirm readyRead method is called ? Do you see any error like connect issue on application log window or logs ?
-
yeah, the readyRead() method is called when a user send something, qDebug()<<data; is showing the char/string. But mainwindow is not receiving the string.
thank you for reply.
-
Thank you. I solved the problem.