【发布时间】:2016-07-09 19:11:36
【问题描述】:
所以在下面的代码中,我在 tkinter 中建立了一个 Notebook。我从列表 VARS["IMPS"] 中提取字符串,并使用字符串作为键和框架作为值在字典中创建页面。
当我建立按钮时,我的问题出现了,按钮激活的功能只是打印 impname。但是,在构建应用程序时,标签中始终包含正确的内容和“impname”。笔记本所有页面上的按钮总是打印列表 VARS["IMPS"] 中的最后一个字符串。为什么会这样?
Necromicon = ttk.Notebook(self)
self.pages = {}
for impname in __VARS__["IMPS"]:
page = {}
# Formate is Imp_acrobat.Imp()
# impname is a string
self.pages[impname] = page
self.pages[impname]["Page"] = ttk.Frame(Necromicon)
Necromicon.add(self.pages[impname]["Page"], text=impname[4:])
x = ttk.Label(self.pages[impname]['Page'], text=impname)
x.config(wraplength=175, font=SMALL_FONT)
x.config(background='black', foreground='red')
self.pages[impname]['Scroll'] = x
self.pages[impname][impname + 'Button'] = tk.Button(
self.pages[impname]['Page'],
text='Activate',
command=lambda: self.modload(self, controller, impname))
self.pages[impname]['Scroll'].pack(fill="both", expand=True)
self.pages[impname][impname + 'Button'].pack()
【问题讨论】:
标签: python python-3.x tkinter ttk