使用标签tkinter Python在新的windows GUI中显示所有Dict

使用标签tkinter Python在新的windows GUI中显示所有Dict,python,tkinter,Python,Tkinter,我是python新手,很少参加在线培训。我无法和下面的问题有任何密切的联系 我正在使用TkinterGUI from Tkinter import * root = Tk() trainings = {"title":"Python Training Course for Beginners", "location":"Frankfurt", "ID": 111,"title":"Intermediate Py

我是python新手,很少参加在线培训。我无法和下面的问题有任何密切的联系

我正在使用TkinterGUI

from Tkinter import *

root = Tk()
trainings = {"title":"Python Training Course for Beginners",
                     "location":"Frankfurt",
                     "ID": 111,"title":"Intermediate Python Training",
                     "location":"Berlin",
                     "ID": 133,"title":"Python Text Processing Course",
                     "location":"Mdsgtd",
                     "ID": 122}

  for key in trainings.keys():
   x = trainings.get(key)
   print x


  Label(root, text = x ).pack()
  mainloop()
仅获取输出:
122

但我希望结果应该显示在GUI标签中:

{'ID': 111, 'location': 'Frankfurt', 'title': 'Python Training Course for Beginners'}
{'ID': 122, 'location': 'Mdsgtd', 'title': 'Python Text Processing Course'}
{'ID': 133, 'location': 'Berlin', 'title': 'Intermediate Python Training'}
我是否可以在函数标签内使用,如以下代码所示:不工作:

def OnButtonClick(self):
    self.top= Toplevel()
    self.top.title("Read Data Service Menu Item")
    self.topdata = {'parakeet': ['fly', 'bird'], 'dog': 'animal', 'cat': 'feline'}
    for key in self.topdata.keys():
               x = self.topdata.get(key)

    self.topL2 = Label(self.top, text = key).pack()

    self.top.resizable(1,0)
    self.top.transient(self)
    self.B1.config(state = 'normal') #disable/normal

    self.topButton = Button(self.top, text = 'Close', command = self.OnChildClose)
    self.topButton.pack()

如评论中所述,您目前有一些问题。首先,你应该将你的
培训
字典更改为一个字典列表,让你依次存储每门课程的相关信息

假设您希望为与每门课程相关的信息显示不同的标签,则以下操作应有效:

from Tkinter import *

courses = [{"title": "Python Training Course for Beginners",
            "location": "Frankfurt",
            "ID": 111},
           {"title": "Intermediate Python Training",
            "location": "Berlin",
            "ID": 133},
           {"title": "Python Text Processing Course",
            "location": "Mdsgtd",
            "ID": 122}]


root = Tk()

for course in courses:
    temp_text = '{0} ({1}) - {2}'.format(course['title'], course['ID'], course['location'])
    Label(root, text=temp_text).pack()

mainloop()
我们使用字符串格式创建一个写得很好的输出,当然是课程名称,后面是括号中的ID,然后是破折号后面的课程位置


这里最关键的是,我们希望为每门课程创建一个
标签
小部件-因此,我们在for循环中添加新的
标签
,以确保实现这一点。

您在字典中多次使用键-您不应该这样做!缩进执行的是
标签(root,text=x)。如果我的ID是十六进制的0x111、0x122,则仅使用
x
的最后一个值调用pack()
。那我怎么才能在屏幕上显示相同的十六进制呢label@BharatKathari将
课程['id']
替换为
int(课程['id'],0)
在创建
temp_text
的行中,现在我希望在如下标签中显示,而不更改课程列表:1。初级Python培训课程法兰克福111,2。中级Python培训222…基本上在开始时添加sl.编号