我正在开发用于重新编译Linux内核的GUI。为此,我需要从Python实现4-5个Linux命令。我使用Qt作为GUI设计器。我已使用os.system()
调用成功实施了这些命令。但输出是在控制台上获得的。真正的问题是命令的输出是一个需要几乎20-25分钟连续打印的清单。我们如何将这个控制台输出转移到Qt中设计的文本框中。任何人都可以帮助我在Qt中使用源代码实现setSource()
操作作为实时控制台输出。如何将Python控制台输出重定向到QTextBox
3
A
回答
5
self.process = QProcess()
self.connect(self.process, SIGNAL("readyReadStdout()"), self.readOutput)
self.connect(self.process, SIGNAL("readyReadStderr()"), self.readErrors)
tarsourcepath="sudo tar xvpf "+ self.path1
self.process.setArguments(QStringList.split(" ",tarsourcepath))
self.process.start()
def readOutput(self):
self.textBrowser2.append(QString(self.process.readStdout()))
if self.process.isRunning()==False:
self.textBrowser2.append("\n Completed Successfully")
def readErrors(self):
self.textBrowser2.append("error: " + QString(self.process.readLineStderr()))
这所做的工作对我来说相当不错。谢谢你们。
1
我主要处理wxPython,但是是http://diotavelli.net/PyQtWiki/Capturing_Output_from_a_Process的解决方案,将工作?
从页面:
问题:你想运行一个进程 ,打印大量的信息到 控制台,并显示在 文本编辑器或浏览器的输出,但结果 是一个GUI,冻结,直到 过程完成。
解决方案(许多可能的一个): 创建一个QProcess中的对象,其 信号连接到一些插槽类, 传所需要的参数和 启动它。过程的标准输出 和stderr上的数据将传送到您的插槽。
0
使用管道浮现在脑海。您可以使用后台线程来读取程序的输出(并且每当添加新行时就将事件发送到GUI)。
所以其基本思路是这样的:
os.chdir("/usr/src/linux-2.6.34")
p = os.popen("make", "r")
try:
while True:
line = p.readline()
if not line:
break
# Replace this with a GUI update event (don't know anything about Qt, sorry)
print line
finally:
# Cf. http://docs.python.org/library/os.html#os.popen
programReturnValue = p.close() or 0
+0
这个想法是好的,但是问题是我知道如果线程能够传输什么到现在。因为我不认为我们有更新的时间差异。但我可以从NIck的上面找到答案。感谢您帮助我和iDog。 – Kris 2010-05-19 07:22:21
相关问题
- 1. scala 2.11:如何将控制台输出重定向到文件
- 2. Robot Framework:如何将控制台输出重定向到文件
- 3. (Eclipse RCP)如何将输出重定向到控制台视图?
- 4. 如何将控制台输出重定向到模块内的PowerShell输出?
- 5. 将SWI-Prolog控制台输出重定向到一个文件
- 6. 将控制台输出重定向到winforms列表框
- 7. 将C++控制台输出重定向到C#
- 8. 将BlackBerry设备模拟器输出重定向到控制台
- 9. 将控制台输出重定向到java中的字符串
- 10. 将跟踪输出重定向到控制台
- 11. 将控制台日志输出重定向到flask-socketio
- 12. 将程序输出重定向到QLabel而不是控制台
- 13. 查找当前标准输出或如何输出重定向到控制台
- 14. 如何建议Cronjob将控制台输出重定向到url或脚本?
- 15. 如何重定向控制台的输出?
- 16. 如何在PHP上实时重定向控制台输出?
- 17. 如何使用eclipse插件将控制台输出重定向到GUI控制台视图?
- 18. 将控制台输出绑定到RichEdit
- 19. NUnit的将不会重定向控制台输出
- 20. 重定向输出和错误到文件和控制台
- 21. 控制台重定向输出到另一个应用程序
- 22. 控制台重定向输出到文件上的AWS S3
- 23. 输出重定向到文件和控制台
- 24. STDOUT外部重定向,在控制台看不到输出
- 25. iPhone SDK:STDERR重定向/标准输出到的XCode控制台
- 26. 将C++控制台输出重定向到C#控制台不会打印任何东西
- 27. 控制台重定向输入
- 28. 重定向控制台输出从子控制台进程到父控制台进程失败
- 29. Python 3:如何将输出打印到控制台和文件
- 30. 如何在Linux中将cout重定向到控制台?
伟大的帮助兄弟,它真的有我的东西。但我得到的只是关于Windows的窗口。我需要使用它进行系统调用。它关于执行一些程序与req arguments.but它是伟大的帮助兄弟,因为我可以获得实现应用程序界面的方式。谢谢 – Kris 2010-05-19 06:19:38
再次尝试并成功完成了兄弟。我用start()取代closeStdin()它顺利地工作。谢谢 – Kris 2010-05-19 07:20:00