我是qt的新手。我正在使用qt creator 4.8.1,并试图为我编写的C程序创建gui。该程序会分析文件并打印出一些信息,因此我的GUI只需将其显示在文本浏览器中即可。因此,我的想法是,一旦QProcess打印了一些内容,我需要阅读并显示它。我尝试用以下方式做到这一点:
myprocess->waitForReadyRead();
QTextStream(&boxMessage)<<myprocess->readAll();
//display
我也尝试过:
connect(myprocess, SIGNAL(readyReadStandardOutput()), this, SLOT(updateProgress()));
//in updateProgress();
QTextStream(&boxMessage1)<<zerosuppProcess->readAllStandardOutput();
gui确实确实显示了消息,但是它一次显示了所有消息。为了测试这一点,我创建了一个循环,每秒打印一条消息(在C程序中),而不是gui每秒显示一条新消息,而是在5秒(最大迭代次数)后显示所有消息。
那么有什么方法可以确切地知道何时有新消息可用于读取和相应地更新gui?
这是C程序的相关部分:
int loopcount = 0;
while (loopcount<5) {
printf("loop #%d\n", loopcount);
loopcount++;
Sleep(1000);
}