码迷,mamicode.com
首页 > 其他好文 > 详细

Tkinter教程之Text(1)篇

时间:2014-09-21 13:05:50      阅读:303      评论:0      收藏:0      [点我收藏+]

标签:blog   http   io   使用   ar   for   art   sp   log   

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

‘‘‘Tkinter教程之Text篇(1)‘‘‘
bubuko.com,布布扣‘‘‘1.创建第一个Text‘‘‘
bubuko.com,布布扣from Tkinter import *
bubuko.com,布布扣root = Tk()
bubuko.com,布布扣t = Text(root)
bubuko.com,布布扣t.pack()
bubuko.com,布布扣root.mainloop()
bubuko.com,布布扣#root中含有一Text控件,可以在这个控件内输入文本,可以使用Ctrl+C/V向Text内添加剪切板上的内容(文本),不接受Ctrl+Z执行操作
bubuko.com,布布扣‘‘‘2.向Text中添加文本‘‘‘
bubuko.com,布布扣#insert方法添加文本内容
bubuko.com,布布扣from Tkinter import *
bubuko.com,布布扣root = Tk()
bubuko.com,布布扣t = Text(root)
bubuko.com,布布扣#向第一行,第一列添加文本0123456789
bubuko.com,布布扣t.insert(1.0,‘0123456789‘)
bubuko.com,布布扣#向第一行第一列添加文本ABCDEFGHIJ
bubuko.com,布布扣t.insert(1.0,‘ABCDEFGHIJ‘)
bubuko.com,布布扣t.pack()
bubuko.com,布布扣root.mainloop()
bubuko.com,布布扣#insert的第一个参数为索引;第二个为添加的内容
bubuko.com,布布扣‘‘‘3.使用line.col索引添加内容‘‘‘
bubuko.com,布布扣#使用indexes来添加Text的内容
bubuko.com,布布扣# -*- coding: cp936 -*-
bubuko.com,布布扣from Tkinter import *
bubuko.com,布布扣root = Tk()
bubuko.com,布布扣t = Text(root)
bubuko.com,布布扣# 向第一行,第一列添加文本0123456789
bubuko.com,布布扣t.insert(1.0,‘0123456789‘)
bubuko.com,布布扣t.insert(‘2.end‘,‘ ‘)
bubuko.com,布布扣# 向第一行第一列添加文本ABCDEFGHIJ
bubuko.com,布布扣t.insert(2.5,‘ABCDEFGHIJ‘)
bubuko.com,布布扣t.pack()
bubuko.com,布布扣root.mainloop()
bubuko.com,布布扣# 可以看到使用indexes时,如果其值超过了Text的buffer值,程序不会抛出异常,它会使用向给定值靠近。
bubuko.com,布布扣‘‘‘mark是用来表示在Text中位置的一类符号‘‘‘
bubuko.com,布布扣‘‘‘4.使用内置的mark控制添加位置‘‘‘
bubuko.com,布布扣#演示了内置的mark:INSERT/CURRENT/END/SEL_FIRST/SEL_LAST的用法
bubuko.com,布布扣# -*- coding: cp936 -*-
bubuko.com,布布扣from Tkinter import *
bubuko.com,布布扣root = Tk()
bubuko.com,布布扣t = Text(root)
bubuko.com,布布扣#向Text中添加10行文本
bubuko.com,布布扣for i in range(1,10):
bubuko.com,布布扣    t.insert(1.0,‘0123456789 ‘)
bubuko.com,布布扣#定义各个Button的回调函数,这些函数使用了内置的mark:INSERT/CURRENT/END/SEL_FIRST/SEL_LAST
bubuko.com,布布扣def insertText():
bubuko.com,布布扣    t.insert(INSERT,‘jcodeer‘)
bubuko.com,布布扣def currentText():
bubuko.com,布布扣    t.insert(CURRENT,‘jcodeer‘)
bubuko.com,布布扣def endText():
bubuko.com,布布扣    t.insert(END,‘jcodeer‘)
bubuko.com,布布扣def selFirstText():
bubuko.com,布布扣    t.insert(SEL_FIRST,‘jcodeer‘)
bubuko.com,布布扣def selLastText():
bubuko.com,布布扣    t.insert(SEL_LAST,‘jcodeer‘)
bubuko.com,布布扣#INSERT    
bubuko.com,布布扣Button(root,
bubuko.com,布布扣       text = ‘insert jcodeer at INSERT‘,
bubuko.com,布布扣       command = insertText
bubuko.com,布布扣       ).pack(fill = X)
bubuko.com,布布扣#CURRENT
bubuko.com,布布扣Button(root,
bubuko.com,布布扣       text = ‘insert jcodeer at CURRENT‘,
bubuko.com,布布扣       command = insertText
bubuko.com,布布扣       ).pack(fill = X)
bubuko.com,布布扣#END
bubuko.com,布布扣Button(root,
bubuko.com,布布扣       text = ‘insert jcodeer at END‘,
bubuko.com,布布扣       command = endText
bubuko.com,布布扣       ).pack(fill = X)
bubuko.com,布布扣#SEL_FIRST
bubuko.com,布布扣Button(root,
bubuko.com,布布扣       text = ‘insert jcodeer at SEL_FIRST‘,
bubuko.com,布布扣       command = selFirstText
bubuko.com,布布扣       ).pack(fill = X)
bubuko.com,布布扣#SEL_LAST
bubuko.com,布布扣Button(root,
bubuko.com,布布扣       text = ‘insert jcodeer at SEL_LAST‘,
bubuko.com,布布扣       command = selLastText
bubuko.com,布布扣       ).pack(fill = X)
bubuko.com,布布扣
bubuko.com,布布扣t.pack()
bubuko.com,布布扣root.mainloop()
bubuko.com,布布扣#几个内置的mark:
bubuko.com,布布扣#INSERT:光标的插入点
bubuko.com,布布扣#CURRENT:鼠标的当前位置所对应的字符位置
bubuko.com,布布扣#END:这个Text buffer的最后一个字符
bubuko.com,布布扣#SEL_FIRST:选中文本域的第一个字符,如果没有选中区域则会引发异常
bubuko.com,布布扣#SEL_LAST:选中文本域的最后一个字符,如果没有选中区域则会引发 异常
bubuko.com,布布扣
bubuko.com,布布扣‘‘‘5.使用表达式来增强mark‘‘‘
bubuko.com,布布扣#表达式(expression)可以个性任何的Indexes,如下:
bubuko.com,布布扣‘‘‘
bubuko.com,布布扣+ count chars :前移count字符
bubuko.com,布布扣- count chars :后移count字符
bubuko.com,布布扣+ count lines :前移count行
bubuko.com,布布扣- count lines :后移count行
bubuko.com,布布扣linestart:移动到行的开始
bubuko.com,布布扣linesend:移动到行的结束
bubuko.com,布布扣wordstart:移动到字的开始
bubuko.com,布布扣wordend:移动到字的结束
bubuko.com,布布扣‘‘‘
bubuko.com,布布扣# 演示修饰符表达式的使用方法,如何与当前可用的indexes一起使用
bubuko.com,布布扣# -*- coding: cp936 -*-
bubuko.com,布布扣from Tkinter import *
bubuko.com,布布扣root = Tk()
bubuko.com,布布扣t = Text()
bubuko.com,布布扣# 向第一行,第一列添加文本0123456789
bubuko.com,布布扣for i in range(1,10):
bubuko.com,布布扣    t.insert(1.0,‘0123456789 ‘)
bubuko.com,布布扣a = ‘test_mark‘
bubuko.com,布布扣def forwardChars():
bubuko.com,布布扣    # 直接连接字符串
bubuko.com,布布扣    # t.mark_set(a,CURRENT + ‘+ 5 chars‘)
bubuko.com,布布扣    t.mark_set(a,CURRENT + ‘+5c‘)
bubuko.com,布布扣def backwardChars():
bubuko.com,布布扣    # t.mark_set(a,CURRENT + ‘- 5 chars‘)
bubuko.com,布布扣    t.mark_set(a,CURRENT + ‘-5c‘)
bubuko.com,布布扣def forwardLines():
bubuko.com,布布扣    # t.mark_set(a,CURRENT + ‘+ 5 lines)
bubuko.com,布布扣    t.mark_set(a,CURRENT + ‘+5l‘)
bubuko.com,布布扣def backwardLines():
bubuko.com,布布扣    # t.mark_set(a,CURRENT + ‘- 5 lines)
bubuko.com,布布扣    t.mark_set(a,CURRENT + ‘-5l‘)
bubuko.com,布布扣def lineStart():
bubuko.com,布布扣    # 注意linestart前面的那个空格不可省略
bubuko.com,布布扣    t.mark_set(a,CURRENT + ‘ linestart‘)
bubuko.com,布布扣def lineEnd():
bubuko.com,布布扣    # 注意lineend前面的那个空格不可省略
bubuko.com,布布扣    t.mark_set(a,CURRENT +  ‘ lineend‘)
bubuko.com,布布扣def wordStart():
bubuko.com,布布扣    # 移动到当前字的开始。
bubuko.com,布布扣    t.mark_set(a,CURRENT + ‘ wordstart‘)
bubuko.com,布布扣def wordend():
bubuko.com,布布扣    # 移动到当前字的结束
bubuko.com,布布扣    t.mark_set(a,CURRENT + ‘ wordend‘)
bubuko.com,布布扣# mark:test_mark默认值为CURRENT
bubuko.com,布布扣t.mark_set(a,CURRENT)    
bubuko.com,布布扣Button(root,text = ‘forward 5 chars‘,command = forwardChars).pack(fill = X)
bubuko.com,布布扣Button(root,text = ‘backward 5 chars‘,command = backwardChars).pack(fill = X)
bubuko.com,布布扣Button(root,text = ‘forward 5 lines‘,command = forwardLines).pack(fill = X)
bubuko.com,布布扣Button(root,text = ‘backward 5 lines‘,command = backwardLines).pack(fill = X)
bubuko.com,布布扣Button(root,text = ‘line start‘,command = lineStart).pack(fill = X)
bubuko.com,布布扣Button(root,text = ‘line end‘,command = lineEnd).pack(fill = X)
bubuko.com,布布扣Button(root,text = ‘word start‘,command = lineEnd).pack(fill = X)
bubuko.com,布布扣Button(root,text = ‘word end‘,command = lineEnd).pack(fill = X)
bubuko.com,布布扣# 测试三个位置的不同,CURRENT可以得知是当前光标的位置;mark就表示mark的位置了,INSERT好像一植都在1.0处没有改变。
bubuko.com,布布扣def insertText():
bubuko.com,布布扣    t.insert(INSERT,‘insert‘)
bubuko.com,布布扣def currentText():
bubuko.com,布布扣    t.insert(CURRENT,‘current‘)
bubuko.com,布布扣def markText():
bubuko.com,布布扣    t.insert(a,‘mark‘)
bubuko.com,布布扣Button(root,text = ‘insert jcodeer.cublog.cn‘,command = insertText).pack(fill = X)
bubuko.com,布布扣Button(root,text = ‘current jcodeer.cublog.cn‘,command = currentText).pack(fill = X)
bubuko.com,布布扣Button(root,text = ‘mark jcodeer.cublog.cn‘,command = markText).pack(fill = X)
bubuko.com,布布扣t.pack()
bubuko.com,布布扣root.mainloop()

Tkinter教程之Text(1)篇

标签:blog   http   io   使用   ar   for   art   sp   log   

原文地址:http://www.cnblogs.com/LeeZz/p/3984330.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!