2014-01-31 3 views
1

Есть ли способ идентифицировать строку/столбец в tkinter.Text виджетом в tkinter? Я имею в виду что-то вроде методов identify_row(event.y) и identify_column(event.x).Tkinter Текстовый виджет - идентифицировать строку y-coord

Я хочу выделить строку ниже, и мне нужно, чтобы она работала с отключена Текстовый виджет.

Я думал о том, чтобы получить высоту и подсчитать номер строки от текущей координаты y и высоты линии, но я подумал, что может быть лучший способ.

Итак, есть ли? Благодарим за любые советы.

ответ

1

Нашел, это работает для меня:

def __onLClicked(self, event): 
    linestart = self.index("@{0},{1} linestart".format(event.x, event.y)) 
    lineend = self.index("{} lineend".format(linestart)) 

    self.tag_remove("current_line", 1.0, "end") 
    self.tag_add("current_line", linestart, lineend) 

Только одна деталь, она, к сожалению, не higlight все линии одинаковы, потому что каждая строка имеет различную длину. Если кто-нибудь знает, как выделить полную «ширину» (длину длинной линии, я думаю) для каждой строки, не добавляя лишних пробелов ... это было бы здорово!

+1

Чтобы выделить всю строку, добавьте завершающую новую строку при добавлении тега. Например, вы можете использовать '' {} lineend + 1c ".format (linestart)' –

+0

Удивительно, спасибо! :) – dakov

Смежные вопросы