2017-09-21 11 views
0

私はPython 2.7のTkinterでデスクトップアプリケーションを開発中です。私のアプリはいくつかの画面を持っており、私は各画面と単一のメインコントローラのための単一のフレームを使用してそれらを実装しました。コントローラクラスには、フレームを一番上に置くための以下のメソッドがあります。フレームTkinter.Frameのコールバックメソッド

self.framesキーとして pageNameinitialisedフレームのオブジェクトを有する
def show_frame(self, pageName): 
    """ 
    Show a frame for the given page name. 
    """ 
    frame = self.frames[pageName] 
    frame.tkraise() 

Tkinter.Frameに実装できるコールバックメソッドはありますか?あるスクリーンに変更があると、そのスクリーンが表示されるときに別のものに更新できますか?上記のコードスニペット用

参考: How to change and show a new window in Tkinter

答えて

1

だから私は実現し、私はコールバックを自分で書くことができると私はtkraise呼び出すどこにそれを呼び出すが、コールバックメソッドを実装していないクラスのための場所にチェックを持っています。

def show_frame(self, pageName): 
    """ 
    Show a frame for the given page name. 
    """ 
    frame = self.frames[pageName] 
    frame.tkraise() 

    # only call 'on_tkraise' method, if the object's class has implemented it 
    # can be used for updating UI 
    if hasattr(frame, 'on_tkraise') and callable(getattr(frame, 'on_tkraise')) : 
     frame.on_tkraise() 
関連する問題