【问题标题】:What widget should after be called on?之后应该调用什么小部件?
【发布时间】:2019-09-16 23:24:00
【问题描述】:

我正在使用after 创建延迟回调。我注意到虽然许多不同的对象都有一个after 方法,但不清楚在tk.Frametk.Button 上调用after 之间是否有任何区别。

我没有看到一个指南提到无论调用什么对象 after 是否都可以预期相同的行为。从实现来看,它似乎只是在小部件的公共基类中委托给self.tk.call('after', ms, name),但这并不意味着所有子类的行为都是相同的。

如果我需要调用 after 时手头有多个小部件,是否有任何理由选择一个而不是另一个,或者无论如何我都可以期待相同的行为?

【问题讨论】:

    标签: python python-3.x tkinter


    【解决方案1】:

    我正在使用 after 创建延迟回调。我注意到虽然许多不同的对象都有 after 方法,但不清楚在 tk.Frame 或 tk.Button 之后调用之间是否有任何区别。

    不,没有区别。您可以使用任何您想要的小部件调用after,它的行为将完全相同。

    查看实现,它似乎只是委托给小部件的公共基类中的 self.tk.call('after', ms, name) ,但这并不意味着行为将相同对于所有子类。

    事实上,确实如此。您将其称为小部件上的方法这一事实是 Tkinter 实现的产物。在底层 tcl/tk 库中,它只是一个与任何小部件无关的函数调用。

    【讨论】:

      猜你喜欢
      • 2020-09-06
      • 1970-01-01
      • 2011-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-03
      • 2023-03-28
      • 1970-01-01
      相关资源
      最近更新 更多