定义了一个主窗口,主窗口里主要有一个打开串口,关闭串口和发送按钮。然后将串口的操作写在一个线程里,用到了qt的串口类。在线程里有一个奇怪的问题,看代码:
void WorkThread::run()
{
openSerial();
while(serialFlag)
{
//qDebug() << "-----------------------------------------";
if( send )
{
port->write(data, datalen);
send = false;
}
}
}
编译通过运行后,按打开串口按钮,然后在按关闭串口按钮,主窗口正常。现将以上代码中注销
掉的qDebug() << "-----------------------------------------";加入代码中后:
void WorkThread::run()
{
openSerial();
while(serialFlag)
{
qDebug() << "-----------------------------------------";
if( send )
{
port->write(data, datalen);
send = false;
}
}
}
然后编译运行,在主窗口中按下打开串口,在按下关闭按钮后,这时主窗口就死了,不动了!不知道
为什么,望高手解答!