【问题标题】:Callback method for frame Tkinter.Frame帧 Tkinter.Frame 的回调方法
【发布时间】:2023-03-06 15:25:01
【问题描述】:

我正在使用 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 上是否有任何我可以实现的回调方法,这样如果一个屏幕上有任何变化,只要显示该屏幕,它就可以在另一个屏幕上更新?

上面代码sn-p的参考: How to change and show a new window in Tkinter

【问题讨论】:

    标签: python 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()
    

    【讨论】:

      猜你喜欢
      • 2015-07-23
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多