tkinter动态生成小部件

时间:2018-03-12 17:00:32

标签: python python-3.x tkinter

我需要一些关于样式的建议以及如何动态生成tk小部件。我将API中的一些天气数据作为xml-string下载。

我正在做的是在其中找到某些字符串,用于在tk框架中显示天气数据:

def getSingleDate(self, weatherXML, singleDate):
    return weatherXML[weatherXML.index("<"+singleDate+">")+len(singleDate)+2: weatherXML.index("</"+singleDate+">")]


def lookUpData(self, weatherXML):
    weatherDict={}
    weatherData=["localtime", "temp_c", "text", "wind_kph", "wind_dir", "pressure_mb", "precip_mm", "humidity", "cloud", "feelslike_c", "vis_km"]
    for i in range(len(weatherData)):
        weatherDict[weatherData[i]] = self.getSingleDate(weatherXML, weatherData[i])

代码有效,但我想知道是否有更多的pythonic&#39;从我的列表构造字典的方法和从XML文件生成实际数据的方法。

如果我想使用tkinter显示我的所有天气数据:是否有任何好方法可以从weatherData列表生成tk标签,甚至成对生成一个weatherDict(一个用于名称,一个用于值),我怎么可能将它们从程序的任何其他部分更改?

有没有办法动态构建tk小部件专门为以后调用它们命名?

我想我想做点什么:

self.label_temp_c = tk.Label(text=weatherData[0])
self.label_temp_c.grid(row=0, column=0)
self.label_temp_c_value = tkLabel(text=weatherDict['temp_c'])
self.label_temp_c_value.grid(row=0, column=1)

但不是那样,而是动态的。大脑中有一些结......需要帮助!

谢谢!

0 个答案:

没有答案