小朋友们好,大朋友们好!
我是猫妹,一名爱上Python编程的小学生。
和猫妹学Python,一起趣味学编程。
今日目标
实现下面效果:
消息(Message类)
消息用于显示多行文本消息,对标签进行替代,如果是更加复杂的文本,也可以使用文本(Text类)
创建消息对象语法如下:
Message(master,text,background,width,cursor,anchor,relief,textvariable)
master表示消息的父容器
text表示消息的文本内容
width表示消息的宽度
cursor表示鼠标移动上去光标的形状,其值有arrow(默认值),circle,cross,plus
anchor表示标签中文本内容或图片位置,取值有n,s,,w,e,ne,nw,sw,se和center(默认)
relief表示消息的边框样式,其值包括flat(默认),sunken,raised,groove,ridge
textvariable表示与消息相关联的Variable类型变量,用于存放消息文本内容
参考代码:
import tkinter as tk
root = tk.Tk()
root.title('消息(Message类)')
root.geometry('500x400+20+20')
root.resizable(width=False, height=True)
tk.Message(root, text='如有帮助,敬请关注', width=300).pack()
tk.Message(root, text='和猫妹学Python', width=300).pack()
root.mainloop()
文本(Text类)
文本主要用于显示和处理多行文本
在所有控件中,文本的功能是最为灵活强大的,它可以插入文字、图片、设置其他控件,可以适用于多种任务。
创建文本对象语法如下:
Text(master,background,width,height,cursor,relief,padx,pady,takefocus,state,wrap,undo,xcrollcommand,ycrollcommand)
master表示文本的父容器
background表示文本的背景颜色
width表示文本的宽度
height表示文本的高度
cursor表示鼠标移动上去光标的形状,其值有arrow(默认值),circle,cross,plus
relief表示文本的边框样式,其值包括flat(默认),sunken,raised,groove,ridge
padx表示水平方向上文本和边框的间距
pady表示垂直方向上文本和边框的间距
takefocus表示是否允许键盘TAB键将焦点移动到文本中
state表示是否响应键盘事件或鼠标事件,取值为normal响应和disable不响应
wrap表示文本长度超过制定宽度后是否允许自动换行,none不自动换行,char按字符自动换行,word按单次自动换行
undo表示是否开启撤销功能,True开启,False不开启
xcrollcommand用于绑定水平方向上的滚动条
ycrollcommand用于绑定垂直方向上的滚动条
文本对象的相关方法
index()方法表示返回指定位置的line.column格式的索引
delete()方法表示删除指定范围内的文本、图片或控件
insert()方法表示将指定的文本插入文本之中
image_create()方法表示将指定的图片插入文本之中
window_create()方法表示将指定的控件插入文本之中
mark_set()方法表示设置一个标记,用于控制文本内容、图片或控件位置
mark_unset()方法表示删除一个标记
tag_config()方法表示设置一个标签,用于改变文本中内容的样式和功能
tag_add()方法表示在指定范围内设置一个标签
tag_delete()方法表示删除一个标签
tag_remove()方法表示删除指定范围内的标签
search()方法表示检索文本中的内容
使用时,注意各方法的参数。
参考代码:
import tkinter as tk
root = tk.Tk()
root.title('文本(Text类)')
root.geometry('550x400+20+20')
root.resizable(width=False, height=True)
def clear():
text.delete("1.0", tk.END)
text = tk.Text(root, width=500, height=400)
text.pack()
# 设置标记,标记名为pos
text.mark_set('text_pos', '1.0')
# 设计标签,标签名bg_yellow
text.tag_config('bg_yellow', background='pink')
# 插入文本内容
text.insert(tk.INSERT, '如有帮助,敬请关注')
text.insert('text_pos', '和猫妹学Python')
# 插入图片
photo = tk.PhotoImage(file="pic/maomei.png")
text.image_create(tk.END, image=photo)
# 插入控件
btn = tk.Button(text, text="清除文本", command=clear, cursor='arrow')
text.window_create('1.end', window=btn)
root.mainloop()
怎么样?
你学会了吗?
好了,我们今天就学到这里吧!
如果遇到什么问题,咱们多多交流,共同解决。
我是猫妹,咱们下次见!