Python 如何在同一帧中使用按钮显示命令addBox

Python 如何在同一帧中使用按钮显示命令addBox,python,tkinter,Python,Tkinter,我正在尝试创建一个包含选项卡的笔记本。这些选项卡之一包含一个按钮,当单击该按钮时,将使用此行代码创建一个EditText btn1 = ttk.Button(page1, text = "Add Site Code", command=addBox) 问题是,当我单击此按钮时,它会在帧外创建EditText,如下所示 我需要在框架内的按钮下方显示EditText 然而,这是我的代码 from tkinter import * import tkinter.ttk as ttk import

我正在尝试创建一个包含
选项卡的
笔记本
。这些
选项卡之一
包含一个
按钮
,当单击该按钮时,将使用此行代码创建一个
EditText

btn1 = ttk.Button(page1, text = "Add Site Code", command=addBox)
问题是,当我单击此
按钮时,它会在帧外创建
EditText
,如下所示

我需要在框架内的按钮下方显示
EditText

然而,这是我的代码

from tkinter import  *
import tkinter.ttk as ttk
import background as background
#------------------------------------

def addBox():
    print ("ADD")

    ent = Entry(root)
    ent.pack()

    all_entries.append( ent )

#------------------------------------

all_entries = []

root = Tk()
root.title('Notebook Demo')
# set the configuration of GUI window
w = 600
h = 400
sw = root.winfo_screenwidth()
sh = root.winfo_screenheight()
x = (sw - w) / 2
y = (sh - h) / 2
root.geometry('%dx%d+%d+%d' % (w, h, x, y))
root.config(background = '#A9A9A9')

rows = 0
while rows < 50:
    root.rowconfigure(rows, weight=1)
    root.columnconfigure(rows, weight=1)
    rows += 1

nb = ttk.Notebook(root)
#nb.grid(row=1, column=0, columnspan=50, rowspan=49, sticky='NESW')

page1 = ttk.Frame(nb)
nb.add(page1, text='RDT & On-Air')
nb.pack(expand = 1, fill = "both")

page2 = ttk.Frame(nb)
nb.add(page2, text='Existing Sites')
nb.pack(expand = 1, fill = "both")

page3 = ttk.Frame(nb)
nb.add(page3, text='All Data')
nb.pack(expand = 1, fill = "both")

btn1 = ttk.Button(page1, text = "Add Site Code", command=addBox)
btn1.pack()

root.mainloop()
从tkinter导入*
将tkinter.ttk导入为ttk
导入背景作为背景
#------------------------------------
def addBox():
打印(“添加”)
ent=条目(根)
ent.pack()
所有_条目。追加(ent)
#------------------------------------
所有_条目=[]
root=Tk()
root.title('笔记本演示')
#设置GUI窗口的配置
w=600
h=400
sw=root.winfo_屏幕宽度()
sh=root.winfo_屏幕高度()
x=(西南-西南)/2
y=(sh-h)/2
几何体(“%dx%d+%d+%d%”(w,h,x,y))
root.config(后台='#A9A9')
行数=0
当行数小于50时:
rowconfigure(行,权重=1)
root.columnconfigure(行,权重=1)
行数+=1
nb=ttk.笔记本(根)
#注意:网格(行=1,列=0,列span=50,行span=49,粘性=NESW')
第1页=ttk.帧(nb)
注意:添加(第1页,text='RDT&On Air')
注意:包装(扩展=1,填充=“两个”)
第2页=ttk.帧(nb)
注意:添加(第2页,text='Existing Sites')
注意:包装(扩展=1,填充=“两个”)
第3页=ttk.帧(nb)
注意:添加(第3页,text='All Data')
注意:包装(扩展=1,填充=“两个”)
btn1=ttk.按钮(第1页,text=“添加站点代码”,命令=addBox)
btn1.pack()
root.mainloop()

问题在于,您在第9行添加了新的
条目
,该条目具有
作为父项:

ent=条目(根)
您应该使用您希望条目所在的实际帧作为父窗口小部件。将
root
替换为
page1

def addBox():
打印(“添加”)
ent=条目(第1页)
ent.pack()
所有_条目。追加(ent)

您将
root
作为条目的主控项,以便将它们打包在笔记本下面。如果要将它们放入框架中,请在创建条目时将框架作为主框架。