Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
nube:stdio到QTextedit_Qt_Qt4 - Fatal编程技术网

nube:stdio到QTextedit

nube:stdio到QTextedit,qt,qt4,Qt,Qt4,我读过很多类似的文章,但我不是一个伟大的程序员,我不能理解所有这些。我使用qtcreator使生活变得简单,并希望制作一个可以触发另一个进程的程序,监视它的stdout,然后在必要时杀死它 我假设我想做的是在设计器中创建一个QTextedit,并在其中插入一个信号,每当流更新时更新包含的文本,目前为止还不错,但这就是我变得模糊的地方。我最初的想法是创建QObject的一个子类,该子类以QProcess的形式启动该进程,并且每当标准输出更新QObject并将新数据附加到QTextedit框时都会启

我读过很多类似的文章,但我不是一个伟大的程序员,我不能理解所有这些。我使用qtcreator使生活变得简单,并希望制作一个可以触发另一个进程的程序,监视它的stdout,然后在必要时杀死它

我假设我想做的是在设计器中创建一个QTextedit,并在其中插入一个信号,每当流更新时更新包含的文本,目前为止还不错,但这就是我变得模糊的地方。我最初的想法是创建QObject的一个子类,该子类以QProcess的形式启动该进程,并且每当标准输出更新QObject并将新数据附加到QTextedit框时都会启动该进程

因此,我的程序结构将如下运行:

在按钮上,按“创建新的QObject派生类”

QObject派生类构造函数启动QProcess并将readyReadStdout()信号连接到派生QObject类插槽

当触发派生的QObject时,它接受readyReadsDout()并将任何新数据附加到QTetEdit框

按下按钮时,调用派生的QObject析构函数并终止进程

有人做过类似的事情吗?就像我说的,我读过类似的帖子,但有时需要用自己的话提问才能理解

谢谢大家(也是我的forst帖子,woo:)


好的,下面是我的更新:

我已经将QProcess类的一个实例(名为proc)添加到我的mainWindow类中,还添加了一个QObject派生类的新实例(名为procLog),我在该类中添加了一个插槽。我希望此插槽将readyReadStandardOutput()信号作为触发器来调用readAllStandardOutput()并将新行发送到procLog中的新信号,我无法将QProcess插槽连接到QObject派生类。以下是我正在尝试的:

connect(proc, SIGNAL(readyReadStandardOutput ()), procLog, SLOT(logReady()));
我获取,错误:QObject::connect:无法连接(null)::readyReadStandardOutput()到(null)::logReady()

你知道这是为什么吗。还有,有没有一种方法可以将代码块添加到注释中的文本中


谢谢

可能重复yes,这是一个很好的方法,尽管您可能不需要单独的QObject派生类。请阅读相关问题(在本页右侧),这已经被问了很多,做了很多。iv从来没有这么快的回答!我会去读书,看看我能走多远,真的很感激!我是否可以手工编写Mat链接到的帖子的实现:“将QProcess::readyRead信号连接到一个插槽,然后使用QProcess::readAllStandardOutput从QProcess读取,并使用QTextEdit::append将文本写入QTextEdit。”首先,我应该从哪里开始QProcess?在主循环中?(顺便说一句,我不能习惯于返回提交评论,而不是添加新行,因此这些评论是无用的:)(我应该在评论中添加类似的问题,还是单击“回答您的问题?”)阅读Qt信号和插槽文档以及示例。还要阅读QProcess文档。它们都很好。如果您有一个特定的问题,请发布一个问题,其中包含您遇到的确切问题),但您必须展示到目前为止您已成功编写的代码。因此,去阅读文档并练习。这很有趣,您将看到:-)可能重复yes,这是一个很好的方法,尽管您可能不需要单独的QObject派生类。请阅读相关问题(在本页右侧),这已经被问了很多,做了很多。iv从来没有这么快的回答!我会去读书,看看我能走多远,真的很感激!我是否可以手工编写Mat链接到的帖子的实现:“将QProcess::readyRead信号连接到一个插槽,然后使用QProcess::readAllStandardOutput从QProcess读取,并使用QTextEdit::append将文本写入QTextEdit。”首先,我应该从哪里开始QProcess?在主循环中?(顺便说一句,我不能习惯于返回提交评论,而不是添加新行,因此这些评论是无用的:)(我应该在评论中添加类似的问题,还是单击“回答您的问题?”)阅读Qt信号和插槽文档以及示例。还要阅读QProcess文档。它们都很好。如果您有一个特定的问题,请发布一个问题,其中包含您遇到的确切问题),但您必须展示到目前为止您已成功编写的代码。因此,去阅读文档并练习。很有趣,你会看到:-)