【问题标题】:Stopping the program for a period of time in tkinter with python用python在tkinter中停止程序一段时间
【发布时间】:2017-09-18 19:40:03
【问题描述】:

我想知道是否可以暂停我的 python 程序 1 秒 - 不使用常规 python,使用 Tkinter 模块 - 我想在 1 秒后更改标签的名称。我该怎么做?

【问题讨论】:

  • 您不需要暂停程序。这个网站上有很多关于一段时间后更新标签的问题和答案。问之前你有没有搜索过?
  • @eyllanesc:你的评论对初学者来说没有多大意义,因为 tkinter 没有 Clock 类或函数。
  • 这和另一个很像,但我想了解更多信息——也许是一些语法。
  • @BryanOakley 我对 pygame 感到困惑
  • Basic timer in tkinter的可能重复

标签: python tkinter


【解决方案1】:

您似乎想将操作安排在一秒钟后进行。 这与暂停程序有很大不同,您实际上不需要这样做。

tkinter.Widget.after 方法几乎就是您想要的。 它接受一个回调(即要调用的函数),以及一个延迟,在此之后应该调用前者。

所以你需要一个函数来设置标签的文本:

def set_text():
    label['text'] = "A new text"

然后,您将把它作为第二个参数传递给根窗口小部件的 after 方法,第一个参数是以毫秒为单位的延迟:

root.after(1000, set_text)

这将安排一秒后调用set_text 函数。

这里有一个完整的例子,演示了after方法的效果。 将显示带有Initial text 的标签,一秒钟后,其文本将变为A new text

import tkinter as tk

def set_text():
    label['text'] = "A new text"

root = tk.Tk()
label = tk.Label(root, text="Initial text")

label.pack()
root.after(1000, set_text)

root.mainloop()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-28
    • 1970-01-01
    • 2012-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-08
    相关资源
    最近更新 更多