Python json编辑器,如何删除选项卡并在选项卡tkinter中添加标签/条目
我有这个程序,使标签,我想为每个标签标签和条目 使用for循环还是什么Python json编辑器,如何删除选项卡并在选项卡tkinter中添加标签/条目,python,json,tkinter,Python,Json,Tkinter,我有这个程序,使标签,我想为每个标签标签和条目 使用for循环还是什么 from tkinter import * import json from tkinter.filedialog import asksaveasfile import time from tkinter import ttk import math import sys root = Tk() root.geometry('1000x1200') root.title('Json Editor') root.count
from tkinter import *
import json
from tkinter.filedialog import asksaveasfile
import time
from tkinter import ttk
import math
import sys
root = Tk()
root.geometry('1000x1200')
root.title('Json Editor')
root.counter = 0
root.uncounter = -1
tabcontrol=ttk.Notebook(root, width=800, height=800)
NewWorkLab=Label(root,text="Name: ")
NewWorkLab.grid(row=0,column=0,sticky="W")
NewWorkEntry=Entry(root)
NewWorkEntry.grid(row=0,column=1,sticky="W")
def AddNewWork():
root.counter +=1
print(root.counter)
TabName=ttk.Frame(tabcontrol)
tabcontrol.add(TabName,text=NewWorkEntry.get())
TabName.ttk.Label(TabName, text ="Welcomes").grid(column = 0,
row = 0,
padx = 30,
pady = 30)
TabName.tabcontrol.ttk.Entry(TabName, text ="this label is wrong").grid(column = 1,
row = 0,
padx = 30,
pady = 30)
def deletetab():
tabcontrol.forget(tabcontrol.select())
# tabcontrol.destroy(TabName, root.counter)
AddWorkButton=Button(root,text=' Add ', command=AddNewWork)
AddWorkButton.grid(row=0,column=2, sticky="W")
RemWorkTab=Button(root,text=' Rem ', command=deletetab)
RemWorkTab.grid(row=0,column=3, sticky="W")
tabcontrol.grid(row=1,column=0,columnspan=2,padx=5)
root.mainloop()
最后是我的问题
- 如何在我用第二个程序创建的选项卡中显示标签和条目之类的内容
i
,您可以执行以下操作:
tablist = []
def AddNewWork():
tab=ttk.Frame(tasktabs)
tasktabs.add(tab,text=NewWorkEntry.get())
tablist.append(tab)
...
i = # whatever tab number you want to modify
tab = tablist[i]
tab.button = Button(tab, text="Click me!")
tab.label = Label(tab, text="I'm a label")
i = # whatever tab number you want to modify
tab = tablist.pop(i)
tab.destroy()
如何删除用按钮创建的选项卡??在第三个程序中没有固定数量的选项卡
同样的技术也适用:对列表中的元素调用destroy
方法。您还应该从列表中删除该项。例如,假设您要删除tabi
,您可以执行以下操作:
tablist = []
def AddNewWork():
tab=ttk.Frame(tasktabs)
tasktabs.add(tab,text=NewWorkEntry.get())
tablist.append(tab)
...
i = # whatever tab number you want to modify
tab = tablist[i]
tab.button = Button(tab, text="Click me!")
tab.label = Label(tab, text="I'm a label")
i = # whatever tab number you want to modify
tab = tablist.pop(i)
tab.destroy()
有人回答并删除了答案这是一个很好的答案,我无法收回你发布的代码太多了。请试着专注于一个问题,并发布绝对最少的代码量来说明您遇到的问题。例如,如果您正在为如何从一个小部件中获取数据而苦苦挣扎,那么我们不需要17个输入小部件。如果你正在努力动态创建标签,那么这些标签不需要17个条目控件,等等。我提出两点,我想把重点放在第二点上,因为这也会回答第一点(因为代码重复),即使我必须重写所有内容,请尝试重写问题并为问题创建一个新的。修改并使其简单化---我如何标记创建的选项卡,并在能够删除它后给选项卡一种标记?现在我如何在选项卡内创建标签???@ayucaba:与我演示的创建标签的方式完全相同button.tablist=[i]NameError时出错:名称“i”不是defined@ayucaba:嗯,是的。你必须告诉它你想把项目添加到哪一个。请举一个更好的例子