You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Tkinter实现每隔固定秒数更新从API获取的变量值

你可以通过Tkinter内置的after()方法实现非阻塞的定时更新,这是Tkinter场景下做定时UI更新的标准实现,不会卡住界面交互。

修改后的完整代码如下:

from tkinter import *
import requests
import json

def getInfo(call):
    r = requests.get(call)
    return r.json()

key = " "
uuid = " "
url = f"https://api.hypixel.net/player?key={key}&uuid={uuid}"

root = Tk()
root.title('Test Title')
root.geometry("500x500")

my_frame = Frame(root, width=500, height=200)
my_frame.pack(pady=20, ipady=20, ipadx=20)

my_label = Label(my_frame, text="加载中...", font=("Helvetica", 40), fg="#09d2f6")
my_label.pack(pady=20)

def update_uhc_wins():
    # 拉取最新数据
    try:
        data = getInfo(url)
        uhcWins = "UHC Wins: " + str(data["player"]["stats"]["Duels"]["uhc_duel_wins"])
        # 更新标签文本
        my_label.config(text=uhcWins)
    except Exception as e:
        # 接口请求失败时提示错误,避免崩溃
        my_label.config(text="数据获取失败")
    # 60秒后再次调用自身,实现循环更新
    root.after(60000, update_uhc_wins)

# 程序启动时先调用一次加载初始数据
update_uhc_wins()

root.mainloop()

主要改动说明:

  • 新增了update_uhc_wins()函数封装数据拉取和UI更新逻辑,末尾调用root.after(60000, update_uhc_wins)实现每隔60秒自动触发一次更新
  • 增加了简单的异常捕获,避免API请求超时、参数错误等问题导致程序直接崩溃
  • 初始标签先设为加载状态,第一次数据拉取完成后自动更新展示内容

内容的提问来源于stack exchange,提问作者Zeerky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 16:06:02