在编写程序的时候需要从外部读取txt文件的数据打印到QtextBrowser文本框中,但是发现数据是卡一下然后一起出来,而不是一行一行地实时显示。编程环境是vs2017编译器下的集合qt插件的C++界面编程。
原来的程序段如下:
ui.dataout->clear();
ifstream infile;
infile.open("data.txt"); //将文件流对象与文件连接起来
string a;
while (getline(infile, a))
{
QString s = QString::fromStdString(a);
ui.dataout->append(s);
}
infile.close(); //关闭文件输入流
此时打印的效果是卡一下,然后输出所有结果,原因是while循环占用了线程,导致无法刷新界面,因而在其中添加刷新进程的函数
QApplication::processEvents();
最后代码为:
ui.dataout->clear();
ifstream infile;
infile.open("data.txt"); //将文件流对象与文件连接起来
string a;
while (getline(infile, a))
{
QString s = QString::fromStdString(a);
ui.dataout->append(s);
QApplication::processEvents();
}
infile.close(); //关闭文件输入流
此时可以实现实时显示每一行的打印过程