python使用tkinter无法给顶层窗体的输入框设定默认值

这几天某同学遇到了一个棘手的问题,困扰了很久。今天终于解决了,我来记录一下坑。

情景:python 使用tkinter为第二层窗体(顶层窗体)中的一个输入框设定默认值时,总是无法设置,而且对输入框获取值,也是空的。没有报错。

解决办法只需要顶层窗体使用Toplevel,其余代码不变就可以解决。(toplevel本就在tkinter库当中,不需要引入,只需要将上层窗体由tk.Tk()改用tk.Toplevel()即可)

代码示例:底层窗口一个按钮,打开新窗口(顶层窗口),新窗口输入框显示默认值,输入新值,获取新值。

import tkinter as tk

# 设置根(底层)窗口
window = tk.Tk()
window.title('根窗口')
window.geometry('500x300')

# 传值变量
textVar = tk.StringVar()
textVar.set('在这里输入...')

# 获取新窗口中输入框的数据


def getText():
    global textVar
    text = textVar.get()
    print(text)


# 创建新窗口
def create_toplevel():
    # 新窗口(顶层窗口),使用Toplevel
    top = tk.Toplevel()
    top.title('打开新窗口')
    top.geometry('400x200')

    textInput = tk.Entry(top, bd=10, textvariable=textVar)

    textInput.pack()

    # 获取值的按钮
    getInputTextBtn = tk.Button(top, text="获取值", font=16, bg="silver", relief='groove', command=getText).place(x=150, y=120)

    top.mainloop()


# 打开新窗口
openNewWindowBtn = tk.Button(window, text='打开新窗口', font=16, bg="silver",
                             relief='groove', height=2, width=28, command=create_toplevel).pack()


window.mainloop()

效果:

PS:页面放大食用更佳。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值