将垂直条或其他标记添加到特定列的tkinter文本小部件

时间:2017-02-18 00:48:28

标签: python tkinter python-idle

我的目的是向IDLE添加一个垂直条,以指示第80列的首选行长度。

我试图为Text tkinter小部件找到一个配置选项,允许这样但没有找到任何内容。

我希望它是一个简单的配置选项,所以我可以在Python \ Lib \ idlelib中的EditorWindow.py中添加另一个text_options字典。

我不确定样式/主题是如何工作的,但他们是否有能力在文本小部件中仅更改1列的背景颜色?

1 个答案:

答案 0 :(得分:0)

可能的解决方案概要:

  • 创建一个1像素宽的帧,具有对比鲜明的背景颜色,作为文本的子项。
  • 使用.place()将框架定位在适当的水平坐标处。

可能的问题:

  • 我没有看到任何简单的方法来获取特定列的坐标。 Text.bbox("1.80")看起来很有希望,但除非行中实际有80个字符,否则不起作用。您可能必须首先插入一个虚拟的80个字符的行,调用update_idletasks以获取Text来计算位置,调用bbox来获取坐标,然后删除虚拟文本。每当更改显示字体时重复。
  • 这条线必然会出现在任何文字或选区的顶部,这与我对此类功能所期望的视觉效果并不相符。