关于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即可。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值