• Tkinter教程之Text(2)篇


    本文转载自:http://blog.csdn.net/jcodeer/article/details/1811347

    '''Tkinter教程之Text(2)篇'''
    '''6.使用tag来指定文本的属性'''
    #创建一个指定背景颜色的TAG
    # -*- coding: cp936 -*-
    from Tkinter import *
    root = Tk()
    t = 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()
    t = 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()
    t = 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()
    t = 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()
    t = 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()
    t = 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()
    t = 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()
    t = 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相关的属性,不论是之前还是之后

  • 相关阅读:
    Ubuntu下访问Windows中Postgresql
    Ubuntu下访问Windows中Postgresql
    “大家好,我是渣渣辉”这款油腻游戏的背后是90后老板和10亿现金流
    ID 选择器
    getElementById
    遇见未来 | 超融合如何兼顾企业的“敏态”和“稳态”的业务需求
    赏完超级蓝血月,再来品味这10个与月亮有关的创业项目
    CSS选择器
    jquery dom操作
    getElementById
  • 原文地址:https://www.cnblogs.com/LeeZz/p/3984334.html
Copyright © 2020-2023  润新知