Python 3循环不起作用

时间:2017-12-01 16:25:41

标签: python json tkinter

我是Python的新手,我现在还在尝试一下。我家里有一个气象站,链接到JSON Web API。通过Python我想在屏幕上读取温度。

我遇到的问题是温度没有自我更新。当Python程序开始获得正确的温度时。但如果温度发生变化,那就是python脚本。不会改变。

import urllib.request
import json
from tkinter import *
import tkinter as tk


while True:
    key = "1234"
    method = "getTemp"
    data = json.load(urllib.request.urlopen('http://IP.COM/api/api.php?key=' + key + "&request=" + method))
    temp = (data[u'temp'])

    root = Tk()
    root.title("Temperature board")
    root.configure(background='#545454')

    cv = tk.Canvas(width=1000, height=1000, background='#545454')
    timeLabel = cv.create_text(200, 360, fill="white", text=temp, font=('Arial', 100))
    cv.pack()
    root.mainloop()

我试图创建一个循环来解决问题,但它似乎没有用。

1 个答案:

答案 0 :(得分:1)

root.mainloop()块,这意味着当它运行时,程序就会停在那里。因此,你的循环实际上没有任何区别。您可以使用here描述的解决方案来运行更新温度的函数。

从那里的最佳答案中找到解决方案,您可以执行以下操作:

# setup

def update():
  # update temperature
  root.after(millis between updates, update)

root.after(millis between updates, update)

root.mainloop()