关于python中Tkinter在窗口中新建窗口,get方法无法获取到Entry中的内容(获取为空)的解决方法

最近在学习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即可。

Back to top: