'''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()

转:Tkinter教程之Text(2)篇相关推荐

  1. Tkinter教程之Scrollbar篇

    本文转载自:http://blog.csdn.net/jcodeer/article/details/1811319 '''Tkinter教程之Scrollbar篇''' #Scrollbar(滚动条 ...

  2. Tkinter教程之Message篇

    本文转载自:http://blog.csdn.net/jcodeer/article/details/1811326 '''Tkinter教程之Message篇''' #Message也是用来显示文本 ...

  3. Tkinter教程之Grid篇

    本文转载自:http://blog.csdn.net/jcodeer/article/details/1813196 '''Tkinter教程之Grid篇''' # Tkinter参考中最推荐使用的一 ...

  4. Tkinter 教程之10个经典程序代码 数字时钟(教程含源码)

    Tkinter 是 Python 编程语言中最好的模块之一.它专门用于创建图形用户界面.有了这个模块,我们可以创建一些很棒的程序.在本文中,我们尝试创建一个简单而有趣的程序.我们将特别关注简单的 GU ...

  5. 教程之DSD补丁篇 | 7分钟教你优雅定制最关键的OC补丁(clover通用)

    学会定制OC引导文件,从此安装黑苹果不再是难题. 制作DSDT补丁,是OC定制的第一步,也是最为关键的一步,考虑到网上的相关教程几乎没有,所以这期视频我尽量从黑果小白的角度出发,给大家重点讲一下这最关 ...

  6. Mybatis教程之Mybatis配置篇

    1. 说明: MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集. 什么意思,看下例子,原 ...

  7. WIFI模块开发教程之W600网络篇6:Airkiss配网

    前言 本文研究如何使用微信Airkiss协议对模块进行配网,所谓配网即是说通知模块需要连接的路由器ssid和password的一种机制. 一.理论基础 1.Airkiss原理 设备处于混杂模式监听无线 ...

  8. Playmaker Input篇教程之PlayMaker菜单概述

    Playmaker Input篇教程之PlayMaker菜单概述 ​Playmaker InputPlayMaker菜单概述 Playmaker插件被导入游戏项目以后,会自动为Unity编辑器添加一个 ...

  9. Playmaker Input篇教程之Playmaker购买下载和导入

    Playmaker Input篇教程之Playmaker购买下载和导入 Playmaker Input篇认识Playmaker Playmaker是Unity的插件,其标志如图1-1所示.开发者使用它 ...

最新文章

  1. redis设置主从复制-slave Replication--解决报错:(error) READONLY You can't write against a read only slave.
  2. linux下的SIGINT的作用,signal(SIGINT,stop)的问题,大家进来看下!!!
  3. 单例模式的一种实现方法
  4. [置顶]Java Web学习总结(25)——MyEclipse+Tomcat+MAVEN+SVN项目完整环境搭建...
  5. 在vc2005中使用MoveWindow()调整控件大小,不能及时刷新,在vc6中则可以
  6. MyBatis 分页插件 PageHelper
  7. InputStream和Reader,FileInputStream和 FileReader的区别
  8. android 按下缩小效果松开恢复_Android自定义ScrollView实现放大回弹效果
  9. python导出csv有引号_python – csv中的双引号元素不能用pandas读取
  10. 在网络上提供资源的计算机,在计算机网络中通常把提供并管理共享资源的计算机称为...
  11. Android 系统(145)---切换两张sim卡的移动网络,自动锁屏
  12. java编程如何 实现8开立方等于2_Java之Math类使用小结
  13. 服务器上出现应用程序错误。此应用程序的当前自定义错误设置禁止
  14. ssm提交post_SSM中get和post乱码笔记
  15. 万能音视频转换器:Permute 3 for mac
  16. hill密码 java_希尔密码(Hill Cipher)的实现
  17. 安装与配置VMware虚拟机
  18. linux手动焦距,摄影师必学!如何精准的手动对焦
  19. 你为什么要去做微商?
  20. CentOS通过Samba访问NAS共享目录

热门文章

  1. 你知道为什么Java的main方法必须是public static void?
  2. IntelliJ IDEA 快捷键终极大全,速度收藏!
  3. 【廖雪峰python进阶笔记】定制类
  4. NLP界的「MVP」再次夺冠,刷新GLUE榜单
  5. 你只使用到了 VS Code 20% 的功能?听听 VS Code 首著作者怎么说
  6. 八年之痒!除了NLP和CV,人工智能就不能干点别的啥了?
  7. 放弃深圳1.5万月薪,我准备回农村了!
  8. PyCharm 2019.3发布,增加了哪些新功能呢?
  9. ICCV 2019:谷歌获最佳论文!中国入选论文最多,中科院、清华领跑
  10. 【每日一算法】罗马数字转整数