我试图在Tkinter
python中创建一个GUI.我想将工具的输出显示给我的Tkinter界面.该工具在命令行中运行良好,但它是一个连续的扫描仪.有点像连续ping(我的意思是
Linux中没有选项的ping命令).
现在问题是因为ping的输出永远不会完成,因此我无法在Tkinter中打印输出.它还使我的应用程序冻结.几秒钟后我也无法停止命令显示输出.
Run process with realtime output in PHP
我发现上面这个链接对php很有帮助,但我怎样才能在python中转换这段代码:
这是我想在tkinter框架上显示的一些示例代码
#!/usr....
import subprocess
x = subprocess.call(["ping", "127.0.0.1"])
print x
这在命令行上运行良好,但我没有在tkinter接口上获得输出.
最佳答案 首先,我必须承认我对模块
subprocess和
threading不太熟悉,但我试图创建一个简单的控制台,它接受你编写一个命令,其输出将显示在
Text小部件中.
基本思想是在单击“执行”按钮时有一个新的运行并行线程来处理命令.我们继续遍历stdout行并将它们插入到Text小部件中.
它似乎适用于任何命令,但我很确定存在一些问题和错误.如果你们对我上面提到的模块更熟悉,看到我的代码有任何严重的问题,或者有任何改进建议,我肯定会听你的,以便改进这个例子.
现在,这是代码:
import tkinter as tk
from tkinter.scrolledtext import ScrolledText
import threading
from s