Tkinter教程之Text(2)篇

''' Tkinter教程之Text(2)篇 '''
''' 6.使用tag来指定文本的属性 '''
# 创建一个指定背景颜色的TAG
#
 -*- coding: cp936 -*-
from  Tkinter  import   *
root 
=  Tk()
=  Text(root)
#  创建一个TAG,其前景色为红色
t.tag_config( ' a ' ,foreground  =   ' red ' )
#  使用TAG 'a'来指定文本属性
t.insert( 1.0 , ' 0123456789 ' , ' a ' )
t.pack()
root.mainloop()
# 结果是文本颜色改变为红色了
''' 7.同时使用两个文本指定同一个属性 '''
# 没有特别设置的话,最后创建的那个会覆盖掉其它所有的设置
#
 -*- coding: cp936 -*-
from  Tkinter  import   *
root 
=  Tk()
=  Text(root)
#  创建一个TAG,其前景色为红色
t.tag_config( ' a ' ,foreground  =   ' red ' )
t.tag_config(
' b ' ,foreground  =   ' blue ' )
#  使用TAG 'a'来指定文本属性
t.insert( 1.0 , ' 0123456789 ' ,( ' b ' , ' a ' ))
t.pack()
root.mainloop()
#  结果是文本的颜色不是按照insert给定的顺序来设置,而是按照tag的创建顺序来设置的。
''' 8.控制tag的级别 '''
# 使用tag_lower/tag_raise来降低或提高tag的级别
#
 -*- coding: cp936 -*-
from  Tkinter  import   *
root 
=  Tk()
=  Text(root)
#  创建一个TAG,其前景色为红色
t.tag_config( ' a ' ,foreground  =   ' red ' )
t.tag_config(
' b ' ,foreground  =   ' blue ' )
#  使用tag_lower来降低b的级别
t.tag_lower( ' b ' )
#  使用TAG 'a'来指定文本属性
t.insert( 1.0 , ' 0123456789 ' ,( ' b ' , ' a ' ))
t.pack()
root.mainloop()
#  结果:文本内容颜色变为了红色,蓝色的作用级别小于红色了,即使是先创建了红色。
''' 9.对文本块添加tag '''
#  tag_add方法的使用
#
 -*- coding: cp936 -*-
from  Tkinter  import   *
root 
=  Tk()
=  Text(root)
#  创建一个TAG,其前景色为蓝色
t.tag_config( ' b ' ,foreground  =   ' blue ' )
#  使用tag_lower来控制tag的级别
t.tag_lower( ' b ' )
#  使用TAG 'a'来指定文本属性
for  i  in  range( 10 ):
    t.insert(
1.0 , ' 0123456789 ' )
t.tag_add(
' b ' , ' 2.5 ' , ' 2.end ' )
t.pack()
root.mainloop()
#  先向Text中添加了10行文本,创建一tag,将第2行第6列至第二行行尾使用使用此tag
''' 10.使用自定义mark对文本块添加tag '''
#  -*- coding: cp936 -*-
#
 tag_add方法的使用
from  Tkinter  import   *
root 
=  Tk()
=  Text(root)
#  创建一个TAG,其前景色为蓝色
t.tag_config( ' b ' ,foreground  =   ' blue ' )
#  使用tag_lower来控制tag的级别
t.tag_lower( ' b ' )
#  使用TAG 'a'来指定文本属性
for  i  in  range( 10 ):
    t.insert(
1.0 , ' 0123456789 ' )
#  自定义两个mark,并使用它们来指定添加tag的文本块
t.mark_set( ' ab ' , ' 3.1 ' )
t.mark_set(
' cd ' ,END)
t.tag_add(
' b ' , ' ab ' , ' cd ' )

t.pack()
root.mainloop()
#  先向Text中添加了10行文本,创建两个mark('ab'和'cd'),将使用这两个tag指定文本的文本块使用此tag
''' 11.使用indexes获得Text中的内容 '''
#  -*- coding: cp936 -*-
#
 分别使用内置的indexes和自定义mark来获取文本
#
 get方法的使用
from  Tkinter  import   *
root 
=  Tk()
=  Text(root)
for  i  in  range( 10 ):
    t.insert(
1.0 , ' 0123456789 ' )
#  获得1.0-2.3的文本
print  t.get( ' 1.0 ' , ' 2.3 ' )
#  自定义两个mark,并使用它们来获得文本块
t.mark_set( ' ab ' , ' 3.1 ' )
t.mark_set(
' cd ' ,END)
print  t.get( ' ab ' , ' cd ' )
t.pack()
root.mainloop()
''' 12.测试delete对tag的影响 '''
#  -*- coding: cp936 -*-
#
 delete方法不会对tag造成影响,也就是说删除文本与tag没有任何关系
from  Tkinter  import   *
root 
=  Tk()
=  Text(root)
#  创建一个TAG,其前景色为蓝色
t.tag_config( ' b ' ,foreground  =   ' blue ' )
for  i  in  range( 10 ):
    t.insert(
1.0 , ' 0123456789 ' )
#  自定义两个mark,并使用它们来指定添加tag的文本块
t.mark_set( ' ab ' , ' 3.1 ' )
t.mark_set(
' cd ' ,END)
t.tag_add(
' b ' , ' ab ' , ' cd ' )
#  删除(1.0 - 4.0)的文本
t.delete( ' 1.0 ' , ' 4.0 ' )
t.pack()
root.mainloop()
#  (1.0-4.0)的文本全部初始删除了,剩余的文本全部以蓝色显示,即还保留tag的属性
''' 13.使用tag_delete对文本属性的影响 '''
#  -*- coding: cp936 -*-
#
 使用tag_delete方法操作tag
from  Tkinter  import   *
root 
=  Tk()
=  Text(root)
#  创建一个TAG,其前景色为蓝色
t.tag_config( ' b ' ,foreground  =   ' blue ' )
for  i  in  range( 10 ):
    t.insert(
1.0 , ' 0123456789 ' )
#  自定义两个mark,并使用它们来指定添加tag的文本块
t.mark_set( ' ab ' , ' 3.1 ' )
t.mark_set(
' cd ' ,END)
t.tag_add(
' b ' , ' ab ' , ' cd ' )
#  删除tag 'b',注意这个操作是在tag_add之后进行的。
t.tag_delete( ' b ' )
t.pack()
root.mainloop()
#  结果所有的文本没有了tag('b')属性,即tag_delete会清除所有与此tag相关的属性,不论是之前还是之后

# author:     jcodeer
#
blog:    jcodeer.cublog.cn
#
email:    [email protected]
 

你可能感兴趣的:(Python,UI)