问题
I have a python based tkinter script which executes some commands using subprocess module. I need to display the standard output on the GUI itself. Since I am new to tk (One week Bold :) ), I need your advice How should i proceed. I have two queries:
- Which widget should I learn to display the stdout.
- How to link the stdout of subprocess to the widget you have mentioned.
回答1:
You may want to use the Tkinter.Text
widget, described here.
The description is quite long, but what you need to understand is mainly that this widget can be used as a buffer, as text should be inserted inside.
So, for each new line in the subprocess
output, you will have to insert text where you want it. Example:
t = Tkinter.Text(root)
while some_condition:
s = p.readline() # get subprocess output
t.insert(END, s)
EDIT Have a look here for getting subprocess output line by line.
You may also want to have a look to Tkinter.Scrollbar
and Text.see()
to tune the display.
来源:https://stackoverflow.com/questions/8133487/widget-to-display-subprocess-stdout