tkinter的Entry设置默认值的效果

发布时间 2023-08-01 09:02:00作者: 帅胡

用Python的tkinter库做GUI程序,Entry控件被我们用来获取用户的输入,不过很多时候,我们希望GUI界面上的Entry控件能有默认值,用户可以修改默认值,也可以不修改。默认值提高了软件的易用性。

直接看代码:

import tkinter as tk

root = tk.Tk()
lb = tk.Label(root, text='网址:')
lb.grid(row=0,column=0)
addr = tk.StringVar(value='https://www.pynote.net')
en = tk.Entry(root, textvariable=addr)
en.grid(row=0,column=1)
root.mainloop()

  

定义addr为tk.StringVar变量,在定义的时候,设置其value为某一个值,这个值就是默认值。在创建Entry控件的时候,使用textvariable参数指向addr。以上程序运行的效果如下:

Entry控件的默认值

还有一种设置默认值的写法,使用tk.StringVar对象的set函数,代码如下:

import tkinter as tk

root = tk.Tk()
lb = tk.Label(root, text='网址:')
lb.grid(row=0,column=0)
addr = tk.StringVar()
addr.set('https://www.maixj.net')
en = tk.Entry(root, textvariable=addr)
en.grid(row=0,column=1)
root.mainloop()

  

set函数设置值,get函数获取值。

以上示例都是使用tk.StringVar对象,其它类型的tk对象同理。给Entry控件设置默认值,就是这么简单!

现在给出第3中实现Entry控件默认值的方法,使用Entry控件自身的insert函数,代码如下:

import tkinter as tk

root = tk.Tk()
lb = tk.Label(root, text='网址:')
lb.grid(row=0,column=0)
addr = tk.StringVar()
en = tk.Entry(root, textvariable=addr)
en.insert(0, 'www.pynote.net')
en.grid(row=0,column=1)
root.mainloop()

  以上代码,addr没有设置初始值,不过entry对象自己使用了insert函数,顾名思义,就是在Entry控件的可输入控件输入值。insert函数的第1个参数是0,表示从最开始的位置插入,如果是INSERT,表示从光标所在位置插入,如果是END,表示在末尾插入。