【问题标题】:How to run a function after a tkinter window is loaded加载 tkinter 窗口后如何运行函数
【发布时间】:2018-03-23 05:52:33
【问题描述】:

如果我有一个名为do_stuff(),我该如何执行它之后一个名为root 窗口完成加载。

【问题讨论】:

标签: function tkinter python python-3.x function tkinter loaded


【解决方案1】:

当一个窗口被放置在 X 中的屏幕上时,Windows 已被映射,因此引发 Tk <Map> 事件以让您的应用程序知道该窗口现在已创建并显示在屏幕上。如果您只想在创建后处理一次,那么在您第一次收到事件时删除您的绑定,因为每次在屏幕上重新映射窗口时都会发送它。即:最小化和恢复事件。

【讨论】:

  • 嗯...又如何?
【解决方案2】:

<Map> 事件类似,只要窗口/小部件可见,就会触发<Visibility> 事件。通过在回调中取消绑定,我们可以确保只在窗口可见时调用一次回调。

def callback():
    # your code here
    root.unbind('<Visibility>') # only call `callback` the first time `root` becomes visible

root.bind('<Visibility>', callback) # call `callback` whenever `root` becomes visible

【讨论】:

  • 虽然 &lt;Map&gt; 对于某些目的可能更好,但我试图使窗口居中,并且在触发 &lt;Map&gt; 时几何图形似乎还没有最终确定,所以 &lt;Visibility&gt; 是下一个最佳选择
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-17
  • 1970-01-01
相关资源
最近更新 更多