0

私はPython GUIを始めたばかりで、さまざまなことをテストしています. 私が試みていることの 1 つは、別のクラスからメッセージを挿入することです。正直なところ、これを何に使用するかはわかりませんが、試してみるという目的で試しているだけです。

# Hello World
# Displays "Hello World!" in a text box.

from tkinter import *

class myClass(object):
    def myMethod():
        print("Hello World!")

class Application(Frame):
    """ GUI application which can reveal the secret of longevity. """
    def __init__ (self, master):
        super(Application, self).__init__(master)
        self.grid()
        self.createWidgets()

    def createWidgets(self):
        # Create a text box
        self.txtBox = Text(self, width = 300, height = 300, wrap = WORD)
        self.txtBox.grid(row = 0, column = 0, sticky = W)

        # display message
        message = myClass.myMethod
        self.txtBox.insert(0.0, message)

# main
root = Tk()
root.title("My Title")
root.geometry("500x500")

app = Application(root)

root.mainloop()

.py ファイルを実行すると、GUI が表示され、次のボックスが表示<function myClass.myMethod at 0x0000000002A1C6A8>されます。間違っていなければ、myMethod がメモリに格納されていることを意味します。

だから私はこれが「Hello World!」message = myClass.myMethod()を出力するだろうと考えていました。- 代わりにエラーが発生します。最初はオブジェクトの線に沿ったものでした。initはパラメーターなどを取りません (エラーを再現できなかったため、申し訳ありません) - 今、私は取得していますtkinter.TclError: wrong # args: should be "43128536.43105360 insert index chars ?tagList chars tagList...?

これは「Hello World!」を持つことは可能ですか? 別のクラスから、GUI テキスト ボックスに出力しますか?

また、コードを調べているうちに気になったことがあります。の目的はapp = Application(root)何ですか? そこにないときは、空白の GUI が表示されます。ただし、実際に app を呼び出して、に設定する以外のことを行うことはわかりませんApplication(root)

4

1 に答える 1

1

関数自体をテキストボックスに追加しています。関数を呼び出し、その戻り値を使用します。

    message = myClass.myMethod()
    self.txtBox.insert(1.0, message)

myClass修正が必要です。文字列を出力する代わりに返します。

class myClass(object):
    def myMethod():
        return "Hello World!"
于 2013-08-10T06:08:12.440 に答える