1、不弹出出控制台界面
项目->运行设置中->勾选 Run in terminal。
2、接收控制台输入
QString str;
cin >>str;
while循环输入会阻塞其它线程,加入QCoreApplication::processEvents();能接收但必须下次输入后才会显示接收的内容。
放至单独线程解决。
3、 QObject::cannot create children for a parent that is in a different thread
在主线程创建类对象的构造函数中创建了新的对象;同时将此类对象后移到新的线程类导致。
通过新的线程类start信号连接此类对象槽函数解决。
mTcpClient = new frmTcpClient();
QThread *tcpClientThread = new QThread();
QObject::connect(this,SIGNAL(send_tcp_client(QString)),mTcpClient,SLOT(on_btnSend_clicked(QString)));
QObject::connect(tcpClientThread,SIGNAL(started()),mTcpClient,SLOT(start()));
mTcpClient->moveToThread(tcpClientThread);
tcpClientThread->start();