Найти - Пользователи
Полная версия: Tkinter - Text: установка метки в нужной позиции
Начало » GUI » Tkinter - Text: установка метки в нужной позиции
1
vinchkovsky
Здравствуйте.

Нужно как-то выделить фрагменты текста в виджете Text. Делаю это как-то так:

    def add_colored_text(self, text, color = 'blue'):
if self.log['state'] == NORMAL:
self.log.insert(END, text)
self.log.mark_set('a', INSERT)
self.log.tag_add(color, "%s-%sc" % (self.log.index('a'), \
len(text)+1), self.log.index('a'))
self.log.tag_config(color, foreground=color)
Но проблема в том, что метка ставится не всегда туда, где нужно, из-за INSERT-а: если выделить какой-то фрагмент текста, то изменится цвет текста в районе выделения. С CURRENT - тоже самое, с END выделяется весь текст. Вопрос - как поставить метку в конец последней строки? Т.е., раскрасить именно len(text)+1 последних символов независимо от выделения текста в виджете и последующих добавлений текста.

Спасибо.
igor.kaist
что то я не совсем понял сути вопроса. Если нужно добавлять текст в разных стилях, то это делается примерно так:
#coding:utf-8
from Tkinter import *
root=Tk()
text=Text()
text.pack()

text.tag_config('my',foreground='red',underline=1,
font=("Arial", 9,'bold'))

text.tag_config('my2',foreground='green',
font=("Arial", 12,'bold'))

text.insert(END,'hello\n','my')
text.insert(END,'world','my2')

root.mainloop()
vinchkovsky
Как все просто ;)

Спасибо.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB