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:页面放大食用更佳。
python使用tkinter无法给顶层窗体的输入框设定默认值的更多相关文章
- Python GUI - Tkinter tkMessageBox
Python GUI - Tkinter tkMessageBox: tkMessageBox模块用于显示在您的应用程序的消息框.此模块提供了一个功能,您可以用它来显示适当的消息 tkMess ...
- Python GUI - tkinter
目录: Tkinter 组件 标准属性 几何管理 代码实例: 1. Label & Button 2. Entry & Text 3.Listbox列表 4.Radiobutton单选 ...
- python之Tkinter控件学习
转载自 http://www.cnblogs.com/kaituorensheng/p/3287652.html#_label0 阅读目录 1. 产品介绍 2. 设计规划 3. 相关知识 4. 源码 ...
- Qt将窗体变为顶层窗体(activateWindow(); 和 raise() )
我们知道,在windows上通过鼠标双击某应用程序图标,该应用程序往往会以顶层窗口的形式呈现在我们面前,但是对于一个已经打开的非顶层窗口,我们怎么将其激活为顶层窗口呢? 要达到激活,这个必须要满足两个 ...
- Qt将窗体变为顶层窗体
//重载resizeEvent和moveEvent两个函数,以保证窗体大小和位置改变后能时刻记住其位置 QRect curGemRect = mpWindow->geometry(); //激活 ...
- python界面Tkinter编程(tkMessageBox对话框使用)
python界面Tkinter编程(tkMessageBox对话框使用) 转载 https://blog.csdn.net/m_buddy/article/details/80105154 1 ...
- python使用tkinter做界面之颜色
python使用tkinter做界面之颜色 from tkinter import *colors = '''#FFB6C1 LightPink 浅粉红#FFC0CB Pink 粉红#DC ...
- Qt QDialog将窗体变为顶层窗体(activateWindow(); 和 raise() )
m_pLoginDlg->hide(); m_pLoginDlg->activateWindow(); //m_pLoginDlg->raise(); m_pLoginDlg-> ...
- Python GUI——tkinter菜鸟编程(中)
8. Radiobutton 选项按钮:可以用鼠标单击方式选取,一次只能有一个选项被选取. Radiobutton(父对象,options,-) 常用options参数: anchor,bg,bitm ...
随机推荐
- axios post 400 状态码
1.400状态码 400的主要有两种形式: (1).bad request意思是“错误的请求": (2).invalid hostname意思是"不存在的域名”. 2.axio ...
- ListView中嵌入布局的Button或多个点击事件
有时候在ListView嵌入的布局中有多个事件需要点击,比如一个item中有TextView和Button两个布局,当我们需要获取这两个点击事件时,我们应该如何去获取呢,通常来说,我们都是已经固定好了 ...
- 配置mongo.conf文件
配置mongo.conf文件,优化mongod.exe的启动 在d:/Develop/MongoDB目录下创建mongo.conf文件并写入: dbpath=d:\Develop\MongoDB\ ...
- Qt编写气体安全管理系统28-模拟工具
一.前言 模拟工具在一些涉及到硬件通信的程序中特别有用,也特别需要,回顾这十年来做过的项目,95%的项目都是软硬件交互的,貌似软硬件结合的项目更有生命力一些,纯软件的或者纯硬件的,并没有那么好控制,如 ...
- matlab学习笔记10_6 字符串与数值间的转换以及进制之间的转换
一起来学matlab-matlab学习笔记10 10_6 字符串与数值间的转换以及进制之间的转换 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合 ...
- 元数据Meta
元数据,指的是“除了字段外的所有内容”,例如排序方式.数据库表名.人类可读的单数或者复数名等等.所有的这些都是非必须的,甚至元数据本身对模型也是非必须的. 在模型中增加元数据,需要在模型类中添加一个子 ...
- LeetCode_447. Number of Boomerangs
447. Number of Boomerangs Easy Given n points in the plane that are all pairwise distinct, a "b ...
- Spring MVC -- 表达式于语言(EL)
JSP 2.0最重要的特性之一就是表达式语言(EL),JSP用户可以用它来访问应用程序数据.由于受到ECMAScript和XPath表达式语言的启发,EL也设计成可以轻松地编写免脚本(就是不用在jsp ...
- 安装hbase分布式集群出现的报错- ERROR:org.apache.hadoop.hbase.PleaseHoldException: Master is initializing
可能的原因如下: 1. 时间没有同步 HBase需要结点间的时间必须是同步的,可以使用date命令在Linux查看时间(同步时间命令:ntpdate 1.cn.pool.ntp.org) 2. 底层采 ...
- C1128节数超过对象文件格式限制: 请使用 /bigobj 进行编译
今天debug C++项目是遇到 解决方案: 右键项目—>属性 输入 /bigobj 再次编译问题解决