在C ++ Qt Qt5.0中阻止写入控制台

时间:2013-07-12 13:44:18

标签: c++ qt qt5

如何在行完成执行之前阻止?

我的代码从两个串行端口读取,并将两者的输出写入单个控制台。想法是写入第一个串行端口的所有输出,然后写入第二个串行端口的所有输出。在第一次写入控制台之前,如何阻止第二次写入控制台?

睡眠不起作用。它所做的只是写第一个putData的第一个字符,等待1秒,并将第一个串口的其余部分与第二个串口输出混合。

以下是相关方法:

void MainWindow::readData() 
{
    QByteArray data = serial->readAll();
    console->putData(data);

    Sleep(1000); //This does not work.

    QByteArray data2 = serial2->readAll();
    console->putData(data2);
}

[Win 7,Qt 5.0,Qt Creator]。

1 个答案:

答案 0 :(得分:2)

我不明白为什么readAll()给你单个字符而不是整个消息,但你可以试试这样的东西:

void MainWindow::readData() 
{
    QByteArray data = serial->readAll();
    console->putData(data);

    if(data.isEmpty())
    {
        QByteArray data2 = serial2->readAll();
        console->putData(data2);
    }
}