Python tkinter教程-04:输入框
要使用,先导入:import tkinter as tk导入名字叫tkinter的库,并将名字改为tk,这样方便使用
注意:尽量不要使用IDLE,不然可能会和tkinter有冲突,因为IDLE是tkinter写的
老规矩,还是要放在mainloop前面~
常用参数:
参数 | 说明 |
---|---|
font | 字体 |
bg | 背景颜色 |
fg | 字体颜色 |
width | 按钮宽度 |
heigh | 按钮高度 |
textvariable | 与tkVar绑定,实现文本自动更新 |
state | 状态(禁用,启用) |
show | 显示形式 |
它也是至少要一个窗口名字的:tkinter.Entry(窗口名字)
,还有放置:
import tkinter as tk
window = tk.Tk()
window.title("Python tkinter教程-04:输入框 by 罗富茗")
e = tk.Entry(window)
e.pack()
window.mainloop()
参数 | 说明 |
---|---|
font | 字体 |
bg | 背景颜色 |
fg | 字体颜色 |
width | 按钮宽度 |
heigh | 按钮高度 |
textvariable | 与tkVar绑定,实现文本自动更新 |
都是以前说过的,就是显示方式不一样,上代码:
import tkinter as tk
window = tk.Tk()
window.title("Python tkinter教程-04:输入框 by 罗富茗")
e = tk.Entry(window, font=("kaiti", 20), bg="red", fg="green")
e.pack()
window.mainloop()
这里和按钮差不多:启用就是可以输入文字,禁用就是禁止输入文字,上范例:
import tkinter as tk
window = tk.Tk()
window.title("Python tkinter教程-03:按钮 by 罗富茗")
def on():
e["state"] = "normal"
b1["state"] = "disable"
b2["state"] = "normal"
def off():
e["state"] = "disable"
b1["state"] = "normal"
b2["state"] = "disable"
e = tk.Entry(window)
e.pack()
b1 = tk.Button(window, text="启用输入", command=on, state="disable")
b1.pack()
b2 = tk.Button(window, text="禁用输入", command=off)
b2.pack()
window.mainloop()
这个一般用于输入用户名,密码,比较常用。
show = ""就是显示字符
如果show等于一个字符串,那输入的每一个字符都会变成你设置的东西,比如:
show = “!”
输入:“12312353451”
变为:"!!!"
show = “#”
输入:“abc”
变为:"###"
那下面出范例,就以*为例吧:
import tkinter as tk
window = tk.Tk()
window.title("Python tkinter教程-03:按钮 by 罗富茗")
l1 = tk.Label(window, text="用户名:", font=("kaiti", 20))
l1.pack()
e1 = tk.Entry(window, font=("kaiti", 20))
e1.pack()
l2 = tk.Label(window, text="密码:", font=("kaiti", 20))
l2.pack()
e2 = tk.Entry(window, font=("kaiti", 20), show="*")
e2.pack()
def on():
e2["show"] = ""
b1["state"] = "disable"
b2["state"] = "normal"
def off():
e2["show"] = "*"
b1["state"] = "normal"
b2["state"] = "disable"
b1 = tk.Button(window, text="显示字符", font=("kaiti", 20), command=on)
b1.pack()
b2 = tk.Button(window, text="隐藏字符", font=("kaiti", 20), state="disable", command=off)
b2.pack()
window.mainloop()
用get大法:输入框名字.get()
即可
范例:
import tkinter as tk, time
window = tk.Tk()
window.title("Python tkinter教程-03:按钮 by 罗富茗")
e = tk.Entry(window)
e.pack()
def get():
print("你输入了:"+e.get())
b = tk.Button(window, text="获取输入内容", command=get)
b.pack()
window.mainloop()
这里的插入用的是insert,删除用的是delete。
而且学这个一定要会索引!点击这里查看索引教程。
插入:
输入框名字.insert(索引位置, 内容)
比如:
输入:“112233”
在索引为2的地方插入你好
代码为:输入框名字.insert(2, "你好")
则结果为:“11你好2233”
代码:
import tkinter as tk, time
window = tk.Tk()
window.title("Python tkinter教程-03:按钮 by 罗富茗")
e = tk.Entry(window)
e.pack()
def ok():
e.insert(2, "你好")
b = tk.Button(window, text="写好了!", command=ok)
b.pack()
window.mainloop()
删除:
输入框名字.delet(索引1, 索引2)
比如:
输入:“112233”
删除索引1~3的字符
代码为:输入框名字.delete(1, 3)
则结果为:“1233”
代码:
import tkinter as tk, time
window = tk.Tk()
window.title("Python tkinter教程-03:按钮 by 罗富茗")
e = tk.Entry(window)
e.pack()
def ok():
e.delete(1, 3)
b = tk.Button(window, text="写好了!", command=ok)
b.pack()
window.mainloop()
其实清空用的也是delete函数!
会有人问:
是不是输入框名字.delete(0, len(输入框名字.get()))
呢?
这种方法到是可以清空,但是比较麻烦!
我们不用单独获取输入框的字符长度,只要在第二个参数写tk.END
或者"end"
就可以了!
范例:
import tkinter as tk, time
window = tk.Tk()
window.title("Python tkinter教程-03:按钮 by 罗富茗")
e = tk.Entry(window)
e.pack()
def ok():
e.delete(0, "end")
b = tk.Button(window, text="清空", command=ok)
b.pack()
window.mainloop()
这个简单,就是一创建就添加字符,范例:
import tkinter as tk, time
window = tk.Tk()
window.title("Python tkinter教程-03:按钮 by 罗富茗")
e = tk.Entry(window)
e.pack()
e.insert(0, "我是初始字符!")
window.mainloop()
这个步骤就是先清空,再插入,很简单,范例:
import tkinter as tk, time
window = tk.Tk()
window.title("Python tkinter教程-03:按钮 by 罗富茗")
e = tk.Entry(window)
e.pack()
e.insert(0, "我是初始字符!")
def reset():
e.delete(0, "end")
e.insert(0, "我是初始字符!")
b = tk.Button(window, text="重置字符", command=reset)
b.pack()
window.mainloop()