欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python tkinter教程-04:输入框

程序员文章站 2024-01-14 11:40:22
...

Python tkinter教程-04:输入框

0 准备工作

要使用,先导入:import tkinter as tk导入名字叫tkinter的库,并将名字改为tk,这样方便使用

注意:尽量不要使用IDLE,不然可能会和tkinter有冲突,因为IDLE是tkinter写的

1介绍

老规矩,还是要放在mainloop前面~
常用参数:

参数 说明
font 字体
bg 背景颜色
fg 字体颜色
width 按钮宽度
heigh 按钮高度
textvariable 与tkVar绑定,实现文本自动更新
state 状态(禁用,启用)
show 显示形式

2 基本用法

它也是至少要一个窗口名字的:tkinter.Entry(窗口名字),还有放置:

import tkinter as tk
window = tk.Tk()
window.title("Python tkinter教程-04:输入框 by 罗富茗")

e = tk.Entry(window)
e.pack()

window.mainloop()

Python tkinter教程-04:输入框

3 通用方法

参数 说明
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()

Python tkinter教程-04:输入框

4 启用与禁用

这里和按钮差不多:启用就是可以输入文字,禁用就是禁止输入文字,上范例:

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()

Python tkinter教程-04:输入框

5 显示方法

这个一般用于输入用户名,密码,比较常用。
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()

Python tkinter教程-04:输入框(注意:界面会很乱,以后教怎么使用其它方法放置控件)

6 获取内容

用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()

Python tkinter教程-04:输入框

7 插入与删除字符

这里的插入用的是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()

Python tkinter教程-04:输入框

删除:
输入框名字.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()

Python tkinter教程-04:输入框

8 清空字符

其实清空用的也是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()

Python tkinter教程-04:输入框

9 初始化字符

这个简单,就是一创建就添加字符,范例:

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()

Python tkinter教程-04:输入框

10 重置字符

这个步骤就是先清空,再插入,很简单,范例:

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()

Python tkinter教程-04:输入框