本文主要是介绍控件之Lable Entry Text Button Scrollbar,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Entry Text 控件:
get() 方法获取文本框中的内容;
insert() 方法插入内容;
delete(self,first,last=None) 删除从 first 到 last 之间的内容;关于 Entry 和 Text 支持的索引需要说明一下,由于 Entry 是单行文本框组件,因此它的索引很简单,
比如要指定第 4 个字符到第 8 个字符,索引指定为 (3,8) 即可。但 Text 是多行文本框组件,
因此它的索引需要同时指定行号和列号,比如 1.0 代表第 1 行、第 1 列(行号从 1 开始, 列号从 0 开始),
如果要指定第 2 行第 3 个字符到第 3 行第 7个字符,索引应指定为 (2.2,3.6)。Text 实际上是一个功能强大的“富文本”编辑组件,这意味着使用 Text 不仅可以插入文本内容,也可以插入图片,
可通过 image_create(self, index, cnf={}, **kw) 方法来插入。Text 也可以设置被插入文本内容的格式,此时就需要为 insert(self, index, chars, *args) 方法的
最后一个参数传入多个 tag 进行控制,这样就可以使用 Text 组件实现图文并茂的效果。当 Text 内容较多时就需要对该组件使用滚动条,以便该 Text 能实现被动显示。为了让滚动条控制 Text 组件
内容的滚动,实际上就是将它们进行双向关联。这里需要两步操作:将 Scrollbar 的 command 设为目标组件的 xview 或 yview,其中 xview 用于水平滚动条控制目标组件水平滚动;
yview 用于垂直读动条控制目标组件垂直滚动。将目标组件的 xscrollcommand 或 yscrollcommand 属性设为 Scrollbar 的 set 方法。
from tkinter import *
from tkinter import messageboxroot = Tk()
root.title('Lable Entry Text Scrollbar button')
root.minsize(100,100)topf = Frame(root)
topf.pack(side=TOP, fill=BOTH, expand=YES,padx=5,pady=5)
label = Label(topf, text='Entry:',width=6).pack(side=LEFT, fill=BOTH, expand=YES)
entry = Entry(topf,width=44,font=('楷体', 14),foreground='green')
entry.pack(side=LEFT, fill=BOTH, expand=YES)midf = Frame(root)
midf.pack(side=TOP, fill=BOTH, expand=YES,padx=5,pady=5)
label = Label(midf, text='Text:',width=6).pack(side=LEFT, fill=BOTH, expand=YES)
text1 = Text(midf,width=44,height=4,font=('楷体', 14),foreground='gray')
text1.pack(side=LEFT,fill=BOTH, expand=YES)# 在Entry和Text开始处插入内容
def insert_start():entry.insert(0, 'beginning')text1.insert(1.0, 'beginning')
# 在Entry和Text的编辑处插入内容
def insert_edit():entry.insert(INSERT, 'middle')text1.insert(INSERT, 'middle')
# 在Entry和Text的结尾处插入内容
def insert_end():entry.insert(END, 'ending')text1.insert(END, 'ending')
# 删除Entry和Text内容
def delete_all():entry.delete(first=0,last=END)text1.delete(index1=1.0,index2=1.5)
# 获取Entry
def get_entry():messagebox.showinfo(title='输入内容', message=entry.get())
# 获取Text
def get_text():messagebox.showinfo(title='输入内容', message=text1.get(1.0, END))botf = Frame(root)
botf.pack(side=TOP, fill=BOTH, expand=YES,padx=5,pady=5)
Button(botf, text='开始插入', command=insert_start).pack(side=LEFT,fill=BOTH, expand=YES)
Button(botf, text='编辑处插入', command=insert_edit).pack(side=LEFT,fill=BOTH, expand=YES)
Button(botf, text='结尾插入', command=insert_end).pack(side=LEFT,fill=BOTH, expand=YES)
Button(botf, text='删除内容', command=delete_all).pack(side=LEFT,fill=BOTH, expand=YES)
Button(botf, text='获取Entry', command=get_entry).pack(side=LEFT,fill=BOTH, expand=YES)
Button(botf, text='获取Text', command=get_text).pack(side=LEFT,fill=BOTH, expand=YES)nextf = Frame(root)
nextf.pack(side=TOP, fill=BOTH, expand=YES,padx=5,pady=5)text2 = Text(nextf, height=20, width=30)
text2.pack(side=LEFT, fill=BOTH, expand=YES)
# Scrollbar控制text2
scroll = Scrollbar(nextf, command=text2.yview).pack(side=RIGHT, fill=Y)
# text2影响scroll未实现功能
# text2['yscrollcommand']=scroll.set
#text2.configure(yscrollcommand=scroll.set)
# 配置标题和内容样式
text2.tag_configure('title',font=('楷体', 20, 'bold'),foreground='red',justify=CENTER, spacing3=20)
text2.tag_configure('detail',font=('微软雅黑', 11, 'bold'),foreground='blue',spacing2=10, # 设置行间距spacing3=15) # 设置段间距
text2.insert(END, '\n')
# 插入标题内容,insert(self, index, chars, *args) 方法的最后一个参数传入多个 tag 进行控制
text2.insert(END, '《面朝大海,春暖花开》\n','title')
# 创建图片
authorP= PhotoImage(file='C:/Users/caojiangtao/Desktop/shirenhaizi.png')
text2.bm = authorP
text2.image_create(END, image=authorP)
text2.insert(END, '\n')
# 插入内容
details = (' 从明天起,做一个幸福的人,'+'喂马、劈柴,周游世界,'+
'从明天起,关心粮食和蔬菜,'+'我有一所房子,面朝大海,春暖花开'+
'从明天起,和每一个亲人通信,'+'告诉他们我的幸福,'+
'那幸福的闪电告诉我的,'+'我将告诉每一个人,'+
'给每一条河每一座山取一个温暖的名字。\n'
' 陌生人,我也为你祝福,愿你有一个灿烂的前程,愿你有情人终成眷属,'
'愿你在尘世获得幸福,我只愿面朝大海,春暖花开。\n')
# 采用循环插入多条介绍信息
for detail in details:text2.insert(END, detail, 'detail')root.mainloop()
这篇关于控件之Lable Entry Text Button Scrollbar的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!