文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

tkinter -- Text (3)

2023-01-30 22:03

关注

自定义 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()

结果:

blob.png

注意: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()

结果:

blob.png

注意:使用 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()

效果:

blob.png



绑定 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()

结果:

blob.png

注意:使用 tag_bind 绑定 tag 与事件,当此事件在 tag 上发生时便就会调用这个 tag 的回调函数

因为使用了 Enter 事件,此事件含有一个参数,故将 enterTag 加了一个参数,程序中不使用此参数

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯