2016-05-12 16 views
1

私はTkinterを使ってGUIを作成しています。私はすべての私のGUI要素といくつかの機能を行う別のクラスを設定するためのクラスを持っています。この上記のコードは、他のクラスのメソッドを呼び出すか、私はGUIの__init__方法でクラスをインスタンス化する必要があるために正しい方法python Tkinterボタンのプレスからクラスメソッドを呼び出す

class class_one(): 

    def method_one(self): 
     do_something() 

class GUI() 

    def __init__(self): 
     button = Button(self, text="button", command=call_class_one_method) 
     button.pack() 

    def call_class_one_method(self): 
     c = class_one() 
     c.method_one() 

ですか?それとも別の何か?

答えて

1

この特定のケースでは、ボタンをクリックするたびに新しいインスタンスを作成する必要がある場合を除き、GUI.__init__にインスタンス化する必要があります。

class GUI() 

    def __init__(self): 
     self.class_one = class_one() 
     button = Button(self, text="button", command=self.class_one.method_one) 
     ... 
+0

ありがとうございました。 – eggman

0

すべてのボタンを押したときにクラスの新しいインスタンスが実際に必要な場合を除き、にインスタンシエートする必要があります。

関連する問題