私は英語で話すことさえ、プログラミングにまったく慣れていないので、ここで私の問題を説明しようとしています:
Glade 3 を使用して GUI を構築しています。これは、TextView または Glade 3 のその他のウィジェットで「print」のすべての出力を表示する必要があります。
私のpythonコードは次のようなものです:
#ab.py
def a():
print 'AAAAA'
def b():
print 'BBBBB'
と
#button_c.py
def button_c():
if:
print '11111'
elif:
print '22222'
else:
print '33333'
a()
b()
if __name__ == '__main__':
button_c()
Python インタープリターが行ったように、次のようなコードを使用して、オブジェクト textview1 の「print」のすべての出力をリアルタイムで表示しようとしています。
def on_button_c_clicked(self, widget):
button_c()
self.builder.get_object("textview1").get_buffer().set_text(??????)
私は多くのことをグーグルで調べて、sys.stdout、スレッド、サブプロセス、およびテキストバッファについて何かを見ましたが、まだ理解できません。現時点で私が持っている唯一のアイデアは、コードのすべての「印刷」部分を次のように変更することです:
def a():
# print 'AAAAA'
output_gui = 'AAAAA'
print output_gui
self.builder.get_object("textview1").get_buffer().set_text(output_gui)
もっとスマートな方法があるに違いないので、まだ試していません。