Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/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
User interface Tkinter显示终端输出_User Interface_Terminal_Tkinter_Output - Fatal编程技术网

User interface Tkinter显示终端输出

User interface Tkinter显示终端输出,user-interface,terminal,tkinter,output,User Interface,Terminal,Tkinter,Output,我正在使用Tkinter(Tk版本8.4)创建一个GUI,允许用户构建一个文本“输入”文件。该文本文件可由另一个程序读取,该程序进行计算,然后输出一个输出文件。我已经创建了一个菜单选项(使用OptionMenu小部件),通过单击“运行”选项从我的GUI运行计算程序。但是,为了确保计算正确并且程序运行正确,您需要密切关注终端。由于此GUI的目的是简化文本文件的构建和运行计算,因此在Tkinter GUI中的文本框或框架中显示终端的输出将非常有用 我搜索了又搜索,但我似乎找不到这个问题的好的、一般的

我正在使用Tkinter(Tk版本8.4)创建一个GUI,允许用户构建一个文本“输入”文件。该文本文件可由另一个程序读取,该程序进行计算,然后输出一个输出文件。我已经创建了一个菜单选项(使用OptionMenu小部件),通过单击“运行”选项从我的GUI运行计算程序。但是,为了确保计算正确并且程序运行正确,您需要密切关注终端。由于此GUI的目的是简化文本文件的构建和运行计算,因此在Tkinter GUI中的文本框或框架中显示终端的输出将非常有用

我搜索了又搜索,但我似乎找不到这个问题的好的、一般的答案。我只想在GUI中显示终端。我如何做到这一点(我假设它只需要几行代码)


提前谢谢

您无法在程序中准确显示终端,但我认为这不是您真正想要的。听起来您只是想在GUI中显示命令的输出

你是如何计算的?你在用波本吗?如果是这样,您可以抓取程序的输出并将其插入文本小部件,如下所示:

p = sub.Popen('./script',stdout=sub.PIPE,stderr=sub.PIPE)
output, errors = p.communicate()
self.text.insert("end", output)

如果您使用线程或多处理,它会变得稍微复杂一些,但概念是一样的:以一种可以捕获输出的方式运行程序,然后在运行完成后将输出插入文本小部件。

您无法在程序中准确显示终端,但我认为这不是您真正想要的。听起来您只是想在GUI中显示命令的输出

你是如何计算的?你在用波本吗?如果是这样,您可以抓取程序的输出并将其插入文本小部件,如下所示:

p = sub.Popen('./script',stdout=sub.PIPE,stderr=sub.PIPE)
output, errors = p.communicate()
self.text.insert("end", output)

如果使用线程或多处理,它会变得更复杂一些,但概念是一样的:以一种可以捕获输出的方式运行程序,然后在运行完成后将输出插入文本小部件中。

嗯,我肯定不是专家,但让我试一试。 您可以将所有终端输出重定向到一个文件,例如
calculation.py>>text.txt
,或者将其包含在您的计算代码中,即:

while calculation: # <- your function 
    with open('text.txt', 'w') as f: # <- open a text file for ouput
        f.write(<calculation output>) # <- keep writing the output

计算时:#嗯,我肯定不是专家,但让我试一试。
您可以将所有终端输出重定向到一个文件,例如
calculation.py>>text.txt
,或者将其包含在您的计算代码中,即:

while calculation: # <- your function 
    with open('text.txt', 'w') as f: # <- open a text file for ouput
        f.write(<calculation output>) # <- keep writing the output
计算时:#