• 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:页面放大食用更佳。

  • 相关阅读:
    jQuery图片翻转弹出动画特效
    HTML5来了,7个混合式移动开发框架
    10款很好用的 jQuery 图片滚动插件
    JS图片自动和可控的轮播切换特效
    CSS3扇形动画菜单 鼠标滑过扇形展开动画
    css里面的几个你不知道的属性
    JS判断是否是微信打开页面
    js的escape()、encodeURI()、encodeURIComponent()区别详解
    使用HTML5的十大原因
    Hybrid App开发 四大主流移平台分析
  • 原文地址:https://www.cnblogs.com/yocichen/p/11672546.html
Copyright © 2020-2023  润新知