使用 tkinter 进行动态文本标记

发布于 2024-11-27 01:10:02 字数 344 浏览 2 评论 0原文

我不知道如何使用 Tkinter 文本小部件动态标记文本范围。 这个想法是,当用户选择文本范围时,它会动态创建一个标签来修改样式。 这是我的代码:

#...code...
tag = text_field.tag_ranges(SEL)
text_field.tag_add('sizesel',tag[0],tag[1])
text_field.tag_config('sizesel',font = appFont)

此代码是绑定到 Combobox 的回调函数的一部分,因此每次值更改时文本的大小都会更改。

这段代码效果很好,但如果我尝试对第二行文本进行样式化,它将采用第一行的样式。

What I couldn't figure out is how to dynamically tag ranges of text with the Tkinter text widget.
The idea is that when the user selects a range of text, it dynamically creates a tag to modify the style.
Here's my code:

#...code...
tag = text_field.tag_ranges(SEL)
text_field.tag_add('sizesel',tag[0],tag[1])
text_field.tag_config('sizesel',font = appFont)

This code is part of a callback function that is bound to a Combobox, so that the size of the text changes every time the value changes.

This code works great, but if I try to stylize a second line of text, it takes the style of the 1st line.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

成熟的代价 2024-12-04 01:10:02

如果您希望每个范围都有唯一的样式,则需要使用唯一的标签,因为样式信息属于标签而不是文本范围。最简单的方法是保留一个全局(或实例属性)计数器,每次添加标签时都会递增该计数器,并将其用作标签名称的一部分。

If you want a unique style for each range you'll need to use a unique tag, because style information belongs to the tag rather than the range of text. The easiest method is to keep a global (or instance attribute) counter that you increment each time you add a tag, and use that as part of the tag name.

你没皮卡萌 2024-12-04 01:10:02

我是这样做的:

tag = text_field.tag_ranges(SEL)
i = 0
for i in tag:
    text_field.tag_add(i,tag[0],tag[1])
    text_field.tag_config(i,font = appFont)

如您所见,我添加了一个简单的 for 语句,该语句位于 tag 上,该 tag 是包含 SEL 标记索引的变量。

Here's how I did it:

tag = text_field.tag_ranges(SEL)
i = 0
for i in tag:
    text_field.tag_add(i,tag[0],tag[1])
    text_field.tag_config(i,font = appFont)

as you can see I added a simple for statement that goes on tag which is the variable that contains the indexes for the SEL tag.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文