最近在学习python的过程中,想着把学习中的一个学员管理系统案例从TUI改成GUI界面,在添加学员信息的时候,发现无法在新的窗口中获取到输入框Entry当中输入的内容,输入什么都会获取为空,原代码如下
import tkinter
import tkinter.messagebox
from student import *
class StudentManager(object):
def __init__(self):
# 存储学员数据
self.student_list = []
self.student_manager = tkinter.Tk()
self.student_manager.title('学员信息管理系统')
self.student_manager.geometry('600x500')
def add_student(self):
def bc():
ret = tkinter.messagebox.askokcancel(title='提交学员信息', message='是否确认提交?')
students = Student(e1.get(), e2.get(), e3.get())
if ret:
tkinter.messagebox.showinfo(title='提示', message='学员信息提交成功')
self.student_list.append(students)
add_students.destroy()
else:
tkinter.messagebox.showinfo(title='提示', message='学员信息取消提交')
add_students.destroy()
add_students = tkinter.Tk() # 此处要修改!!!!!!
add_students.title('添加学员')
add_students.geometry('250x150')
lab = tkinter.Label(add_students, text='学员姓名')
lab1 = tkinter.Label(add_students, text='学员性别')
lab2 = tkinter.Label(add_students, text='学员电话')
lab.grid(row=0, column=0)
lab1.grid(row=1, column=0)
lab2.grid(row=2, column=0)
e1 = tkinter.StringVar()
e2 = tkinter.StringVar()
e3 = tkinter.StringVar()
entry = tkinter.Entry(add_students, textvariable=e1)
entry1 = tkinter.Entry(add_students, textvariable=e2)
entry2 = tkinter.Entry(add_students, textvariable=e3)
entry.grid(row=0, column=1)
entry1.grid(row=1, column=1)
entry2.grid(row=2, column=1)
bt = tkinter.Button(add_students, text='提交保存', command=bc)
bt.grid(row=3, column=1)
add_students.mainloop()
只需要把代码中,注释指明需要修改那一行,将Tk改为Toplevel即可。