我正在尝试生成具有1个菜单项的空白GUI。
然后,当从菜单项中进行选择时,我使用一个函数以相同的形式生成标签,按钮和输入小部件。
但是,当我尝试使用get()方法获取生成的文本框中的输入值时,出现错误。我可能在这里错过了一些核心概念,可能无法实现,但是我想知道。以下是我的代码,
appCompatActivity.supportFragmentManager.popBackStack(fragmentName, FragmentManager.POP_BACK_STACK_INCLUSIVE)
答案 0 :(得分:1)
条目txt1
是在函数内部创建的,并且在函数结束时会对其进行垃圾回收。解决该问题的一种方法是在全局范围内声明StringVar()
,然后将其与条目关联。
检查以下示例:
from tkinter import Tk, Label, Button, Entry, Menu, StringVar
def btn_clientadd():
print(client_string.get()) # Get contents of StringVar
def addclient():
lbl1 = Label(window, text="Client Name :")
lbl1.grid(row=1,column=1,padx=7,pady=7,sticky='e')
# Create entry and associate it with a textvariable
txt1 = Entry(window, textvariable=client_string)
txt1.grid(row=1, column=2)
txt1.focus()
btn = Button(window, text="Add Client", command=btn_clientadd)
btn.grid(row=2,column=2,padx=7,pady=7)
window = Tk()
window.geometry('400x200')
menu = Menu(window)
new_item1 = Menu(menu)
menu.add_cascade(label='ClientMaster', menu=new_item1)
new_item1.add_command(label='Add New Client', command=addclient)
window.config(menu=menu)
client_string = StringVar() # StringVar to associate with entry
window.mainloop()