在Text组件中处理多个标签,每个标签为文本添加样式?

1 投票
1 回答
1154 浏览
提问于 2025-04-16 08:17

我想为一个文本小部件创建一个工具栏,这样用户就可以选择加粗或斜体文本,甚至可以同时选择加粗和斜体。

我查看了这个关于高级Tkinter文本框的回答,还有StyledText小部件的代码,但都没有解决我的问题。

配置标签的基本方法是:

txtWidget.tag_configure("bold", font=my_bold_font)
txtWidget.tag_configure("italic", font=my_italic_font)

这意味着你可以将一个字体和一个标签关联起来,但表面上看似乎没有办法将标签组合和字体关联起来。

那么,最好的办法是创建一个tag_bind事件,调用一个方法来处理我的标签组合并相应地分配字体,还是有其他方法呢?

1 个回答

2

很遗憾,文本小部件有一个小缺陷。如果你想同时使用粗体和斜体,就需要一个同时具备这两种属性的字体标签。你可以随时创建新的标签,所以这并不是一个无法解决的问题,但要搞清楚在一段文字中哪些字符需要“粗体”标签,哪些需要“斜体”标签,哪些又需要一个新的“粗斜体”标签,确实有点麻烦。

撰写回答