TKinter:Entry 和 Text[第二章]
目标
这次我们实现一个小功能(猜数字):创建一个输入框,一个按钮和一个文本框.
- 输入框:负责接受用户输入的数据.
- 按钮:负责让用户猜数字
- 文本框:负责提示用户输入数字与答案之间的关系:
- 大了
- 小了
- 对了
新知识点
-
Entry “输入”
- 创建方式:
entry_name = tk.Entry(window_name)
-
Entry Object 参数一览:
-
所属窗口:window_name
entry_name = tk.Entry(window_name)
-
是否显示文本[show]
# 直接显示文本内容 entry_name = tk.Entry(window_name , show = None) # 将文本内容加密并显示为* entry_name = tk.Entry(window_name , show = '*')
-
-
entry数据的获取[get]
var = entry_name.get()
-
Text “文本”
-
创建方式:
text_name = tk.Text(window_name)
-
Text Object 参数一览:
-
所属窗口:
text_name = tk.Text(window_name)
-
“width” "height"等参数与其他标签用法一致
-
-
数据的插入[insert]
# 在光标所在处插入 text_name.insert('insert' , var) # 在文本最后方插入 text_name.insert('end' , var)
-
实战代码
import tkinter as tk
import random
window_name = tk.Tk()
window_name.title('Mr.Liang')
window_name.geometry('300x300')
label_name = tk.Label(window_name , text = '猜数字' , bg = 'orange' , width = 12 , height = 1)
label_name.pack()
label_name2 = tk.Label(window_name , text = '请输入1-100之间的任意整数' , bg = 'orange' , width = 24 , height = 1)
label_name2.pack()
entry_name = tk.Entry(window_name , show = None)
entry_name.pack()
the_number = random.randint(1,100)
var = tk.StringVar()
def number():
global the_number
if int(entry_name.get()) > the_number:
var.set('大了')
print(the_number)
elif int(entry_name.get()) < the_number:
var.set('小了')
print(the_number)
else:
var.set('恭喜对了')
print(the_number)
button_name = tk.Button(window_name , text = '确定' , command = number)
button_name.pack()
label_tips = tk.Label(window_name , bg = 'green' ,textvariable = var , width = 24 ,height = 6 , font = ('Arial',26))
label_tips.pack()
window_name.mainloop()