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

'''Tkinter教程之Text篇(3)'''
'''14.自定义tag的两个内置属性'''''
#tag.first:tag之前插入文本,此文本不包含在这个tag中
#tag.last:tag之后插入文本,此文本包含在这个tag中
# -*- coding: cp936 -*-
# 使用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之后进行的。
# 在tag('b')之前插入'first'
t.insert('b.first','first')
# 在tag('b')之后插入'last'
t.insert('b.last','last')
t.pack()
root.mainloop()
# 注意:first没有使用tag('b')属性,last使用了tag('b')属性
'''15.在Text中创建按钮'''
# -*- coding: cp936 -*-
# 使用window_create在Text内创建一widget
from Tkinter import *
root = Tk()
t = Text(root)
for i in range(10):
    t.insert(1.0,'0123456789 ')
def printText():
    print 'buttin in text'
bt = Button(t,text = 'button',command = printText)
# 在Text内创建一个按钮
t.window_create('2.0',window = bt)
# 没有调用pack()
# bt.pack()
t.pack()
root.mainloop()
# 注意:使用window_create,而不是使用insert('2.0',bt);pack()也不用调用;
# 点击这个按钮,打印出'button in text',证明这个按钮是可以正常工作的。
'''16.在Text中创建一个图像(未实现)'''
# -*- coding: cp936 -*-
# 使用window_create在Text内创建一widget
from Tkinter import *
root = Tk()
t = Text(root)
for i in range(10):
    t.insert(1.0,'0123456789 ')
# 分别使用BitmapImage和PhotoImage进行测试,均没有显示出图像???
#bm = BitmapImage('gray75')
bm = PhotoImage('c:/python.gif')
# 在Text内创建一个图像
t.image_create('2.0',image = bm)
print t.image_names()
# 打印的图像名称都是正确的
t.pack()
root.mainloop()
# 按照手册中的说明未实现这种效果,原因不知。
'''17.绑定tag与事件'''
# -*- coding: cp936 -*-
# 使用tag_bind方法
from Tkinter import *
root = Tk()
t = Text(root)
for i in range(10):
    t.insert(1.0,'0123456789 ')
# 创建一个tag
t.tag_config('a',foreground = 'blue',underline = 1)
# Enter的回调函数
def enterTag(event):
    print 'Enter event'
# 绑定tag('a')与事件('<Enter>')
t.tag_bind('a','<Enter>',enterTag)
t.insert(2.0,'Enter event ','a')
t.pack()
root.mainloop()
# 注意:使用tag_bind绑定tag与事件,当此事件在tag上发生时便就会调用这个tag的回调函数
# 因为使用了Enter事件,此事件含有一个参数,故将enterTag加了一个参数,程序中不使用此参数
'''18.使用edit_xxx实现编辑常用功能(未实现)'''
# -*- coding: cp936 -*-
# 使用edit_xxx函数实现编辑常用功能
from Tkinter import *
root = Tk()
t = Text(root)
for i in range(10):
    t.insert(1.0,'0123456789 ')
t.pack()
# 定义回调函数
# 撤消回调函数
def undoText():
    t.edit_undo()
# 插入文本函数
def insertText():
    t.insert(1.0,'insert text')
Button(root,text = 'undo',command = undoText).pack(fill = X)
Button(root,text = 'insert text',command = insertText).pack(fill = X)

root.mainloop()
# 这个edit_undo方法也是不起作用,不知为何???

Tkinter教程之Text篇(3)的更多相关文章

  1. Tkinter教程之Text篇(1)

    from Tkinter import *root = Tk()t = Text() for i in range(1,10): t.insert(1.0,'0123456789\n')a = 'te ...

  2. Tkinter教程之Text(1)篇

    本文转载自:http://blog.csdn.net/jcodeer/article/details/1811343 '''Tkinter教程之Text篇(1)''''''1.创建第一个Text''' ...

  3. Tkinter教程之Text(2)篇

    本文转载自:http://blog.csdn.net/jcodeer/article/details/1811347 '''Tkinter教程之Text(2)篇''''''6.使用tag来指定文本的属 ...

  4. 转:Tkinter教程之Text(2)篇

    '''Tkinter教程之Text(2)篇''''''6.使用tag来指定文本的属性'''#创建一个指定背景颜色的TAG# -*- coding: cp936 -*-from Tkinter impo ...

  5. Tkinter教程之Event篇(3)

    本文转载自:http://blog.csdn.net/jcodeer/article/details/1823550 '''Tkinter教程之Event篇(3)''''''11.两个事件同时绑定到一 ...

  6. Tkinter教程之Event篇(2)

    本文转载自:http://blog.csdn.net/jcodeer/article/details/1823548 '''Tkinter教程之Event篇(2)''''''5.测试离开(Leave) ...

  7. Tkinter教程之Event篇(1)'

    本文转载自:http://blog.csdn.net/jcodeer/article/details/1823544 ''Tkinter教程之Event篇(1)'''# 事件的使用方法'''1.测试鼠 ...

  8. Tkinter教程之Grid篇

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

  9. Tkinter教程之Pack篇

    本文转载自:http://blog.csdn.net/jcodeer/article/details/1813077 '''Tkinter教程之Pack篇'''#Pack为一布局管理器,可将它视为一个 ...

随机推荐

  1. TCL语言笔记:TCL练习

    一.关于随机数的练习 1.随机生成一个最大值到最小值之间的整数 proc random {min max} { return [expr round(($max-$min)*rand()+$min)] ...

  2. HTML5 文件API(二)

    1.FileSystem概述及浏览器检 2.申请磁盘配额 3.创建文件

  3. NSArray 迭代

    NSObject *obj=[[NSObject alloc]init];        NSArray *array=[[NSArray alloc] initWithObjects:@" ...

  4. Mac + IDEA + JRebel破解方法.

    [重要提示]---最佳人生 一.只推荐当计算机无法访问互联网时使用本破解文件. 二.如果可以访问互联网,建议直接到JRebel官网注册JRebel会员获取[正版永久免费]使用的授权码.JRebel会员 ...

  5. tomcat web.xml 配置

    1<web-app> 2<error-page> 3<error-code>404</error-code> 4<location>/Not ...

  6. SQL大数据操作统计

    SQL大数据操作统计 1:select count(*) from table的区别SELECT object_name(id) as TableName,indid,rows,rowcnt FROM ...

  7. UVa 11889 (GCD) Benefit

    好吧,被大白书上的入门题给卡了.=_=|| 已知LCM(A, B) = C,已知A和C,求最小的B 一开始我想当然地以为B = C / A,后来发现这时候的B不一定满足gcd(A, B) = 1 A要 ...

  8. UVa 540 Team Queue 【STL】

    题意:给出t个团体,这t个团体排在一起,每次新来一个x排队,如果在整个的团体队列中,有x的队友,那么x排在它的队友的后面,如果他没有队友,则排在长队的队尾 求给出的每一个出队命令,输出出队的人的编号 ...

  9. asp.net实现文件解压和压缩

    C#解压RAR压缩文件(--转载--测试通过) using System; using System.Collections.Generic; using System.Text; using Sys ...

  10. 查看ORACLE执行计划的几种常用方法

    SQL的执行计划实际代表了目标SQL在Oracle数据库内部的具体执行步骤,作为调优,只有知道了优化器选择的执行计划是否为当前情形下最优的执行计划,才能够知道下一步往什么方向. 执行计划的定义:执行目 ...