| 参数 | 含义 |
|---|---|
| borderwidth | 边界宽度 默认是两个像素 |
| bd | 边界宽度 默认是两个像素 |
| background | 背景色彩 |
| bg | 背景色彩 |
| command | 当用户更改内容时,会自动执行此函数 |
| cursor | 当鼠标光标移至按钮上时的形状 |
| exportselection | 如果执行选取时,所选取的字符串会自动输出至剪贴板 如果想要避免,可以设置exportselection=0 |
| foreground | 前景色彩 |
| fg | 前景色彩 |
| font | 字形 |
| height | 高,单位是字符高 |
| highlightbackground | 当功能按钮获取焦点时的背景颜色 |
| highlightcolor | 当工人按钮取得焦点时的颜色 |
| justify | 当有多行文字时,最后一行文字的对齐方式 |
| relief | 可由此控制文字外框 默认是relief=FLAT |
| selectbackground | 被选取字符串的背景色彩 |
| selectborderwidth | 选取字符串时的边界宽度 预设是1 |
| selectfroeground | 被选取字符串的前景色彩 |
| show | 显示输入字符 例如,show='*'表示显示星号,常用于输入密码字段 |
| state | 输入状态 默认是NORMAL表示可以输入,DISABLE则表示无法输入 |
| textvariable | 文字变量 |
| width | 宽,单位是字符宽 |
| xscrollcommand | 在X轴使用滚动条 |
例子:建立标签和文本框,输入姓名和地址
import tkinter root = tkinter.Tk() label1 = tkinter.Label(root, text="姓名 :") label2 = tkinter.Label(root, text="住址 :") label1.grid(row=0) label2.grid(row=1) entry1 = tkinter.Entry(root) entry2 = tkinter.Entry(root) entry1.grid(row=0, column=1) entry2.grid(row=1, column=1) root.mainloop()
运行结果:

设置grid(row=0),在没有设置column=x的情况下,系统自动设置column=0
其实Entry控件具有可以使用show参数设置隐藏输入字符的特性,所以也常被应用在用于输入密码的时候
例子:密码的输入,用*隐藏
import tkinter root = tkinter.Tk() label1 = tkinter.Label(root, text="账号 :") label2 = tkinter.Label(root, text="密码 :") label1.grid(row=0) label2.grid(row=1) entry1 = tkinter.Entry(root) entry2 = tkinter.Entry(root, show="*") entry1.grid(row=0, column=1) entry2.grid(row=1, column=1) root.mainloop()
运行结果:

Entry 有一个get()方法,可以利用这个方法来获取目前Entry 的字符串内容
import tkinter
def getValue():
print("账号为{}, 密码为{}".format(entry1.get(), entry2.get()))
root = tkinter.Tk()
label1 = tkinter.Label(root, text="账号 :")
label2 = tkinter.Label(root, text="密码 :")
label1.grid(row=0)
label2.grid(row=1)
entry1 = tkinter.Entry(root)
entry2 = tkinter.Entry(root, show="*")
entry1.grid(row=0, column=1)
entry2.grid(row=1, column=1)
buttonLogin = tkinter.Button(root, text="登录", command=getValue)
buttonExit = tkinter.Button(root, text="退出", command=root.quit)
buttonLogin.grid(row=2, column=0, sticky=tkinter.W, padx=20)
buttonExit.grid(row=2, column=1)
root.mainloop()
运行结果:

我们输入账号密码,点击登录
账号为123456, 密码为132456
控制台就出现了我们所需要的的信息
在设计GUI程序时,常常需要在建立Entry的文本框内默认建立输入文字,在Widget控件中可以使用insert(index, s)方法插入字符串
其中s是所插入的字符串,字符串会插在index位置
例子:建立默认文字内容
import tkinter
def getValue():
print("账号为{}, 密码为{}".format(entry1.get(), entry2.get()))
root = tkinter.Tk()
label1 = tkinter.Label(root, text="账号 :")
label2 = tkinter.Label(root, text="密码 :")
label1.grid(row=0)
label2.grid(row=1)
entry1 = tkinter.Entry(root)
entry2 = tkinter.Entry(root, show="*")
# 默认账号内容
entry1.insert(0, "123456")
# 默认密码内容
entry2.insert(0, "123456")
entry1.grid(row=0, column=1)
entry2.grid(row=1, column=1)
buttonLogin = tkinter.Button(root, text="登录", command=getValue)
buttonExit = tkinter.Button(root, text="退出", command=root.quit)
buttonLogin.grid(row=2, column=0, sticky=tkinter.W, padx=20)
buttonExit.grid(row=2, column=1)
root.mainloop()
运行结果:

在tkinter模块的应用中可以使用delete(first, last=None)方法删除Entry内的从第first字符到last-1字符间的字符串,如果要删除整个字符串可以使用delete(0, END)
如果删除倒数第一个,我们可以用len()方法判断长度,然后长度减一就行
例子:单击删除按钮清空文本框内容
import tkinter
def getValue():
print("账号为{}, 密码为{}".format(entry1.get(), entry2.get()))
# 删除的方法
def deleteValue():
entry1.delete(0, tkinter.END)
entry2.delete(0, tkinter.END)
root = tkinter.Tk()
label1 = tkinter.Label(root, text="账号 :")
label2 = tkinter.Label(root, text="密码 :")
label1.grid(row=0)
label2.grid(row=1)
entry1 = tkinter.Entry(root)
entry2 = tkinter.Entry(root, show="*")
# 默认账号内容
entry1.insert(0, "123456")
# 默认密码内容
entry2.insert(0, "123456")
entry1.grid(row=0, column=1)
entry2.grid(row=1, column=1)
buttonLogin = tkinter.Button(root, text="登录", command=getValue)
# 调用删除的方法
buttonExit = tkinter.Button(root, text="删除", command=deleteValue)
buttonLogin.grid(row=2, column=0, sticky=tkinter.W, padx=20)
buttonExit.grid(row=2, column=1)
root.mainloop()
运行结果:

例子:删除最后一个
def deleteValue():
len_entry = len(entry1.get())
entry1.delete(len_entry - 1)
entry2.delete(0, tkinter.END)
运行结果:

如果只有一个参数的话,那这个参数将是first,如不是last,len_entry - 1相当于是从到底第一个开始删除,一直到末尾
Python有一个非常好用的计算数学表达式的函数eval
该函数可以直接传回此数学表达式的计算结果,它的语法格式:
"""expression为字符串""" result = eval(expression)
例子:
import tkinter
def getValue():
try:
value = eval(entry.get())
label2.configure(text="计算结果为:" + str(value))
except:
pass
root = tkinter.Tk()
label = tkinter.Label(root, text="请输入数学表达式:")
label.pack(anchor=tkinter.W)
entry = tkinter.Entry(root)
entry.pack(pady=5)
label2 = tkinter.Label(root)
label2.pack()
button = tkinter.Button(root, text="计算", command=getValue)
button.pack(pady=5)
root.mainloop()
运行结果:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。