tkinter作为Python GUI编程的标准接口,其窗口控件非常丰富,本文详细介绍其Text组件。
Text组件作为显示和处理多行文本的组件,具有非常灵活的运用方式。
其属性分为两类,包括STANDARD OPTIONS和WIDGET-SPECIFIC OPTIONS
。基本描述表格所示
STANDARD属性值 | 描述 |
background | 背景颜色 |
borderwidth | 文本控件的边框宽度。默认是1-2个像素。 |
cursor | 文本控件的光标。默认是字符插入光标(一般是一个“I-beam”类型的光标) |
exportselection | 是否允许拷贝内容到剪贴板 |
font | 字体设置及大小 |
foreground | 前景色 |
highlightbackground | 定义文本控件没有获得输入焦点状态下的高亮背景颜色。就是文本控件的亮边。 |
highlightcolor | highlightbackground属性类似。不过是文本控件获得输入焦点时的边框颜色。 |
highlightthickness | 文本控件获得输入焦点时的边框宽度。一般1-2个像素。 |
insertbackground | 设置文本控件插入光标的颜色 |
insertborderwidth | 插入光标的边框宽度。如果是一个非0的数值,光标会使用RAISED效果的边框。 |
insertofftime insertontime |
这两个属性控制插入光标闪烁效果。就是插入光标的出现和消失的时间。单位是毫秒。 |
insertwidth | 设置插入光标的宽度。 |
padx | x轴方向的内边距 |
pady | y轴方向的内边距 |
relief | 指定文本控件的边框3D效果,默认是flat,可以设置的参数;flat、groove、raised、ridge、solid、sunken |
selectbackground | 设置选中文本的背景颜色 |
selectborderwidth | 设置选中区域边界宽度。 |
setgrid | boolean类型。为True时,可以让窗口最大化,并显示整个Text控件 |
takefocus | 定义是否可以使用Tab键移动输入焦点到该控件。 |
xscrollcommand yscrollcommand |
将滚动条与文本控件关联起来,处理滚动条动作。滚动条分别对应水平或者垂直滚动条。 |
WIDGET-SPECIFIC窗口属性 | 描述 |
autoseparators | 单词之间的间隔。默认值是1 |
height | 文本控件的高度。默认是24行。 |
maxundo | 最大Undo的次数。默认是0。 |
spacing1 | 段前间距。 |
spacing2 | 行间距。 |
spacing3 | 段后间距。 |
state | 定义文本控件的状态。状态有二种:NORMAL和DISABLED |
tabs | 定义按动Tab键时候的移动距离。 |
undo | 开启undo/redo功能。 |
width | 定义文本控件的宽度,单位是字符个数。 |
wrap | 定义如何折行显示文本控件的内容 |
Text基本类的方法:
方法名称 | 描述 |
bbox() |
返回一个描述位置及大小的元组(x,y,width,height) |
compare(index1, op, index2) |
返回一个逻辑比较结果 |
count(self, index1, index2) |
计算两个索引之间相关事物的数量。 |
debug(self, boolean=None) |
根据BOOLEAN,检查文本内部B-Tree的一致性 |
delete(self, index1, index2=None) |
删除INDEX1和INDEX2(不包括在内)之间的字符 |
dlineinfo(self, index) |
返回元组(x,y,width,height,baseline) |
edit(self, *args) |
此方法控制撤消机制和 修改后的标志。 |
get(self, index1, index2=None) |
返回索引INDEX1到INDEX2(不包括在内)之间的值 |
image_create(self, index, cnf={}, **kw) |
在索引INDEX位置创建一个嵌入式图像。 |
index(self, index) |
以line.char形式返回INDEX的索引值。 |
insert(self, index, chars, *args) |
在index索引位置插入字符 |
mark_names(self) |
返回所有的marks值 |
replace(self, index1, index2, chars, *args) |
将索引index1和index2之间的值用chars替换 |
search(self, pattern, index) |
从索引位置开始搜索正则表达式的内容 |
tag_add(self, tagName, index1, *args) |
添加标记 |
tag_bind(self, tagName, sequence, func, add=None) tag_unbind(self, tagName, sequence, funcid=None) |
绑定事件和解除绑定 |
tag_delete(self, *tagNames) |
删除标记 |
tag_remove(self, tagName, index1, index2=None) |
移除索引之间的特定标记 |
window_create(self, index, cnf={}, **kw) |
在索引位置创建子窗口 |
Text组件的应用实例。
一是简单的基本应用
from tkinter import *
class init_window():
def __init__(self):
self.tk = Tk()
self.window_attritions()
def window_attritions(self):
self.tk.title('Text组件学习')
self.init_data_text = Text(self.tk)
self.init_data_text.pack()
def show():
print('hello')
if __name__ == "__main__":
win = init_window()
win.tk.mainloop()
二是插入组件
button = Button(win.init_data_text,text='text中插入button',command=show)
win.init_data_text.window_create(INSERT,window=button)
三是插入图片
win.init_data_text.image_create(END,image=PhotoImage(file='1.gif'))
从上边的介绍可以看出Text组件的索引值应用非常多,下面介绍下索引值的类型
索引类型 | 描述 |
line.column | 行/列 |
line.end | 某行的末尾 |
INSERT | 光标位置 |
END | 文本的末尾 |
user-defined marks | 自定义标记 |
user-defined tags("tag.first", "tag.last") | |
window coordinate("@x,y") | 窗口定位 |
Atas ialah kandungan terperinci python3.6 tkinter之Text组件. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!