发布时间:2018-06-07 16:58:16编辑:Run阅读(4962)
自定义 tag 的两个内置属性
tag.first:tag 之前插入文本,此文本不包含在这个 tag 中
tag.last:tag 之后插入文本,此文本包含在这个 tag 中
代码:
import tkinter as tk root = tk.Tk() t = tk.Text(root) # 创建一个TAG,其前景色为蓝色 t.tag_config('b', foreground='blue') for i in range(10): t.insert(1.0, '123465789\n') # 自定义两个 mark,并使用它们来指定添加 tag 的文本块 t.mark_set('ab', '3.1') t.mark_set('cd', tk.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')属性
在 Text 中创建按钮
使用 window_create 在 Text 内创建一 widget
代码:
import tkinter as tk root = tk.Tk() t = tk.Text(root) for i in range(10): t.insert(1.0, '13246789\n') def printtext(): print('button in text') bt = tk.Button(t, text='button', command=printtext) # 在 Text 内创建一个按钮 t.window_create('2.0', window=bt) t.pack() root.mainloop()
结果:
注意:使用 window_create,而不是使用 insert('2.0',bt);pack()也不用调用;点击这个按钮,打印出'button in text',证明这个按钮是可以正常工作的
在 Text 中创建一个图像
使用 window_create 在 Text 内创建一 widget
代码;
import tkinter as tk root = tk.Tk() t = tk.Text(root) for i in range(10): t.insert(1.0, '13246789\n') # 使用PhotoImage 进行测试 bm = tk.PhotoImage(file='444.gif') t.image_create('2.0', image=bm) t.pack() # 打印的图像名称 print(t.image_names()) root.mainloop()
效果:
绑定 tag 与事件
代码:
import tkinter as tk root = tk.Tk() t = tk.Text(root) for i in range(10): t.insert(1.0, '13246789\n') # 创建一个 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\n', 'a') t.pack() root.mainloop()
结果:
注意:使用 tag_bind 绑定 tag 与事件,当此事件在 tag 上发生时便就会调用这个 tag 的回调函数
因为使用了 Enter 事件,此事件含有一个参数,故将 enterTag 加了一个参数,程序中不使用此参数
上一篇: tkinter -- Text (2)
下一篇: tkinter -- Canvas(1)
47604
45983
36909
34467
29079
25713
24565
19714
19245
17756
5564°
6155°
5690°
5737°
6703°
5482°
5484°
5988°
5965°
7295°