我是Python的新手,我现在有一个问题,就是试图通过for循环为列表中的每个项目制作一个widget笔记本,但问题是我不能为每个widget指定一个名称,我需要widget名称来将不同的widget放入每个Notebook widget中。在
正如我所说的,我是python中的一个傻瓜,我认为下面的代码是一团糟:),所以请为您的帮助人员。在
from tkinter import ttk
note = ttk.Notebook()
list=["tab1","tab2"]
def show_parent_name():
name= button2.winfo_parent()
print(name)
for i in (list):
name_tab=i
tab = ttk.Frame(note, name=name_tab) #-----name define the widget
note.add(tab, text=nombre_tab) # ---text define the tab name
note.pack()
global button2
button2 = Button(tab, text="print parent name",command=show_parent_name)
button2.grid(row=0, column=0, sticky=W)
note.mainloop()
有几点:
list
是一个内置函数。如果使用list
作为变量名,则该函数将不再可用。在我也在导入tkinter,因为使用了tkinter中的对象和常量。在
我使用
lambda
编写按钮回调,它允许我将选项卡名称作为参数传递给show_parent_name
函数。那么我也不需要全局变量。在我稍微重写了循环变量的用法,因为它比必要的更复杂。在
如果不显式地创建窗口根(
Tk()
),Tkinter将自动创建它。但是,如果除了包含笔记本之外,您还计划对窗口执行任何操作,那么应该显式地创建它。在请尝试以下代码,看看它是否按您想要的方式工作:
相关问题 更多 >
编程相关推荐