专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > QT开发

一个有趣的现象,欢迎讨论。该怎么处理

发布时间:2010-05-30 21:35:03 文章来源:www.iduyao.cn 采编人员:星星草
一个有趣的现象,欢迎讨论。
上代码:
主程序
{
  QProcess pro;

  connect(&pro,SIGNAL(readyReadStandardOutput()),this,SLOT(ReceiveOutput()));
  pro.start("test.exe");
  pro.waitForFinished(300000);
}

void MainDialog::ReceiveOutput(void)
{
  QByteArray ba;
  ba.resize(4096);
  ba = proDial.readAllStandardOutput();

  QTextCodec *codec = QTextCodec::codecForName("GBK");
  QString str = codec->toUnicode(ba);

  if ( str.size() > 0 )
  {
  ui->listInformation->addItem(item);
  ui->listInformation->setCurrentRow( ui->listInformation->count());
  ui->listInformation->scrollToBottom();
  ...
  }
}


说明:
外部调用一个可执行程序test.exe,test.exe正常执行输出多行信息,然后在主程序窗口中逐行显示出来。

现象:
在Windows 7下面运行一切正常,但是在Windows XP下,信息是当test.exe执行完毕一次性返回的,貌似阻塞了readyReadStandardOutput信号。


Qt的信号会出现丢失的情况吗?


------解决方案--------------------
探讨
上代码:
主程序
{
QProcess pro;

connect(&pro,SIGNAL(readyReadStandardOutput()),this,SLOT(ReceiveOutput()));
pro.start("test.exe");
pro.waitForFinished(300000);
}

void MainDial……
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: