3

我需要开发一个 GUI 程序,它将运行一些外部 bash 脚本。这个脚本工作大约 30-40 分钟,我想在我的应用程序中实时查看系统输出。

我怎样才能提供这个?我应该使用 QTextStream 吗?

请给我一些例子。

4

1 回答 1

5

如果您通过 QProcess 启动脚本,您可以通过连接到 readyRead 信号来获取输出。然后只需调用任何读取函数来获取数据,然后将其显示在您想要的任何类型的小部件上,例如具有用于添加文本的附加功能的 QTextEdit。

像这样的东西: -

// Assuming QTextEdit textEdit has been created and this is in a class
// with a slot called updateText()
QProcess* proc = new QProcess;
connect(proc, SIGNAL(readyRead()), this, SLOT(updateText()));
proc->start("pathToScript");

...

// updateText in a class that stored a pointer to the QProcess, proc
void ClassName::updateText()
{
    QString appendText(proc->readAll());
    textEdit.append(appendText);
}

现在,每次脚本生成文本时,都会调用 updateText 函数并将其添加到 QTextEdit 对象中。

于 2013-07-17T13:39:21.897 回答