Python 如何自定义输入小部件并使用tkinter保存输入

Python 如何自定义输入小部件并使用tkinter保存输入,python,tkinter,Python,Tkinter,我感兴趣的是如何通过另外打开另一个条目小部件(这里是电话号码)来定制给定的条目小部件,并根据是否添加了另一个条目来保存输入。 这就是我到目前为止所做的: import tkinter as tk root=tk.Tk() root.geometry("600x400") name_var=tk.StringVar() surname_var=tk.StringVar() def getInput(): name=name_var.get()

我感兴趣的是如何通过另外打开另一个条目小部件(这里是电话号码)来定制给定的条目小部件,并根据是否添加了另一个条目来保存输入。 这就是我到目前为止所做的:

import tkinter as tk
  
root=tk.Tk()
root.geometry("600x400")
  
name_var=tk.StringVar()
surname_var=tk.StringVar()
 

def getInput():
    name=name_var.get()
    surname=surname_var.get()
     
    print("The name is : " + name)
    print("The Surname is : " + surname)
     
    name_var.set("")
    surname_var.set("")
     
def addEntry():
    phone_label = tk.Label(root, text = 'Phone', font=('calibre',10, 'bold'))
    phone_entry = tk.Entry(root, font=('calibre',10,'normal'))
    phone_label.grid(row=3,column=0)
    phone_entry.grid(row=3,column=1)
    

name_label = tk.Label(root, text = 'Name', font=('calibre',10, 'bold'))
name_entry = tk.Entry(root,textvariable = name_var, font=('calibre',10,'normal'))

surname_label = tk.Label(root, text = 'Surname', font = ('calibre',10,'bold'))
surname_entry=tk.Entry(root, textvariable = surname_var, font = ('calibre',10,'normal'), show = '*')
  
name_label.grid(row=0,column=0)
name_entry.grid(row=0,column=1)
surname_label.grid(row=1,column=0)
surname_entry.grid(row=1,column=1)

save_btn=tk.Button(root,text = 'Save', command = getInput)
save_btn.grid(row=5,column=0)  

add_btn=tk.Button(root,text = 'Add Info', command = addEntry)
add_btn.grid(row=5,column=1)

root.mainloop()
如何定义另一个用于保存附加电话输入的功能,并使用一个“保存”按钮进行保存?
非常感谢

您不需要额外的函数来保存额外的输入,只需修改
getInput()

您可以为电话号码定义一个额外的
StringVar
phone\u var
(默认为
'
),并将其连接到您在
addEntry()
中创建的额外条目。然后,在
getInput()
中,您可以获得
phone\u var
的内容(即使条目不存在,它也始终存在)。如果它是
,则不保存它

import tkinter as tk

root = tk.Tk()
root.geometry("600x400")

name_var = tk.StringVar()
surname_var = tk.StringVar()
phone_var = tk.StringVar()  # extra StringVar for the optional entry


def getInput():
    name = name_var.get()
    surname = surname_var.get()
    phone = phone_var.get()

    print("The name is : " + name)
    print("The Surname is : " + surname)
    if phone:  # save it only if not empty
        print("The Phone is : " + phone)

    name_var.set("")
    surname_var.set("")

def addEntry():
    phone_label = tk.Label(root, text='Phone', font=('calibre', 10, 'bold'))
    phone_entry = tk.Entry(root, textvariable=phone_var, font=('calibre', 10, 'normal'))
    phone_label.grid(row=3, column=0)
    phone_entry.grid(row=3, column=1)


name_label = tk.Label(root, text='Name', font=('calibre', 10, 'bold'))
name_entry = tk.Entry(root, textvariable=name_var, font=('calibre', 10, 'normal'))

surname_label = tk.Label(root, text='Surname', font=('calibre', 10, 'bold'))
surname_entry = tk.Entry(root, textvariable=surname_var, font=('calibre', 10, 'normal'), show='*')

name_label.grid(row=0, column=0)
name_entry.grid(row=0, column=1)
surname_label.grid(row=1, column=0)
surname_entry.grid(row=1, column=1)

save_btn = tk.Button(root, text='Save', command=getInput)
save_btn.grid(row=5, column=0)

add_btn = tk.Button(root, text='Add Info', command=addEntry)
add_btn.grid(row=5, column=1)

root.mainloop()

我只是试了一下!你真让我高兴!非常感谢:)@Storm: