TK 的文本小部件是否支持自定义文本装饰器?

Does TK's text widget support custom text decorators?

我正在寻找一个支持非平凡标记的跨平台富文本小部件,包括以下内容,我想知道是否可以扩展 Tk 的文本小部件来实现它们:

为了给您一个想法,请查看此处的中间窗格:

我阅读了一些关于标签的内容,但它们似乎仅限于字体、颜色等基础知识。我还阅读了关于在 canvas 小部件上绘制文本的内容,但它看起来像标准的文本编辑器- 像文本选择、流等会丢失。

非常感谢。

简而言之,你只能做你在文档中阅读过的内容(假设你已经阅读了权威文档)。

具体来说,文本小部件并不能满足您的所有要求。您不能执行以下操作:

  • 在文本上方和下方画线。您可以使用自定义字体并启用重写和下划线属性,但无法在小部件上添加线条,并且您无法控制重写或下划线的视觉属性
  • 通过叠加线条和形状(例如实心圆)装饰内容

您可以设置文本背景和前景色、在文本周围绘制边框以及将项目放在装订线中。对于后者,您需要使用 canvas 作为装订线。

请注意,如果您使用 canvas 而不是文本小部件,则可以执行所有这些操作(阅读:canvas 的文本项可以编辑),但这需要实现将其用作编辑器所需的所有绑定的大量工作。有关此方法的更多信息,请参阅 http://effbot.org/zone/editing-canvas-text-items.htm