我正在使用Python 2.7 Tkinter中的桌面应用程序。我的应用程序有几个屏幕,我已经使用单帧为每个屏幕和一个主控制器实现了它们。控制器类具有以下方法,用于将框架置于顶部。
def show_frame(self, pageName):
"""
Show a frame for the given page name.
"""
frame = self.frames[pageName]
frame.tkraise()
其中self.frames的initialised
帧对象以pageName
为键。
我可以在Tkinter.Frame上实现任何回调方法吗?如果一个屏幕上有任何更改,只要显示该屏幕,就可以在另一个屏幕上更新?
答案 0 :(得分: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()