0

我正在使用 tkinter Text 小部件来显示 gerber 代码文件的内容。该程序在树莓派上运行,并一次通过串行向机器发送一行文本的代码。

我将当前活动行设置如下:

class TextEditor(tkinter.Text):
def __init__(self, tkRoot):
    ...
    self.tag_configure("activeLine", background="#87e8ed")# set the colour used for activeLine

def setLine(self, lineNumber):
    self.tag_remove("activeLine", "1.0", "end")
    self.tag_add("activeLine", str(lineNumber)+".0 linestart", str(lineNumber)+".0 lineend+1c")

def getLine(self):
    pass # need to return the activeLine line number

一次应该只有一行用“activeLine”突出显示,所以第一个实例就可以了。

我可以在对 setLine 的调用中存储一个变量,然后在 getLine 中将其读回,但我不希望对文本进行任何编辑,因为它可能会超出接收器

我注意到使用 IDLE 调试器使用的原理与我在这里尝试实现的设置断点的原理相同,是否可能,如果可以,我将从哪里开始寻找 IDLE 源代码以了解它是如何实现的,我我目前在 Ubuntu 18.04 桌面上写这篇文章我不想找到最好的方法来搜索 IDLE 源

任何帮助将不胜感激,我对 python 和 tkinter 很陌生,因为我通常是 Windows dot.net 程序员,但我现在正在学习使用 Linux

4

1 回答 1

1

我现在找到了我自己问题的答案

列出以“tag_”开头的文本小部件的所有功能,如下所示:

d = dir(self.tkRoot.text)
for dv in d:
    s = str(dv)
    if s.startswith("tag_"):
        print(dv)

我找到了返回我这个的方法“tag_ranges(name)”

(<textindex 对象:'5.0'>,<textindex 对象:'6.0'>)

在调用当前线路时是 5

于 2020-09-05T11:39:13.400 回答