2

私は英語で話すことさえ、プログラミングにまったく慣れていないので、ここで私の問題を説明しようとしています:

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)

もっとスマートな方法があるに違いないので、まだ試していません。

4

1 に答える 1