在Tkinter文本小部件中搜索标签

问题描述

我正在使用tkinter文本小部件来显示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

解决方法

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

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

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

我找到了方法“ tag_ranges(name)”,将其返回给我

呼叫当前行时的

是5