目录
一、Lable
绘制单行文本使用 Label 组件
root = tkinter.Tk()
# 选项row代表行,column代表列
tkinter.Label(root, text='标签').grid(row=0, column=0)
二、Message
Message 组件实际上是 Label 组件(只能显示单行)的变体,用于显示多行文本消息。Message 组件能够自动换行,并调整文本的尺寸使其适应给定的尺寸。
https://blog.csdn.net/sinat_41104353/article/details/79316684
三、Text
显示和处理多行文本就需要使用Text 组件
1.简单应用
插入文本 插入按钮 插入图片
import tkinter
def pyText2():
root = tkinter.Tk()
text = tkinter.Text(root, width=30, height=20)
'''插入文字'''
text.pack()
# text.grid(row=0, column=0)
text.insert(tkinter.INSERT, '中国联合网络通信集团有限公司\n')
text.insert(tkinter.END, '告警推送v1.0')
def show():
print('反馈成功')
#注意放入的是Text而不是root了
b1 = tkinter.Button(text, text='插入文字', command=show)
b1.pack()
# b1.grid(row=1, column=0)
text.window_create(tkinter.INSERT, window=b1)
'''插入图片'''
photo = tkinter.PhotoImage(file="") #只支持GIF格式的
def show2():
text.image_create(tkinter.END, image=photo)
b2 = tkinter.Button(text, text='插入图片', command=show2) #注意放入的是Text而不是root了
b2.pack()
# b2.grid(row=3, column=0)
text.window_create(tkinter.INSERT, window=b2)
tkinter.mainloop()
2.实用技巧
检查 撤销 查找
import tkinter
def pyText():
root = tkinter.Tk()
text = tkinter.Text(root, width=30, height=5,undo=True)
text.pack()
text.insert(tkinter.INSERT, '告警数据核查')
contents = text.get('1.0', tkinter.END)
def getSig(contents):
n = hashlib.md5(contents.encode())
#只需要得到md5值n的简单摘要即可
return n.digest()
sig = getSig(contents)
# 点下检查的时候,会重新获得一次contents的内容,将原来的contents进行一个md5的hash,
# 获得它的md5的值;同时也获得之后contents的md5的值,将两者进行对比。
# 由于一个内容只能产生一个唯一的散列,因此若不一样,就说明内容发生了改变。
def check():
contents = text.get('1.0', tkinter.END)
if sig != getSig(contents):
print("内容发生变动")
else:
print("内容没有发生变动")
tkinter.Button(root, text="检查", command=check).pack()
# 一旦有键盘事件就人为在undo堆栈中,添加一个separator(分隔标识)
def callback(event):
text.edit_separator()
text.bind('<Key>', callback)
def undo():
text.edit_undo()
tkinter.Button(root, text='撤销', command=undo).pack()
tkinter.mainloop()