Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Tkinter - Text: установка метки в нужной позиции [RSS Feed]

#1 Янв. 7, 2010 15:07:41

vinchkovsky
От:
Зарегистрирован: 2009-06-08
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Tkinter - Text: установка метки в нужной позиции

Здравствуйте.

Нужно как-то выделить фрагменты текста в виджете 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 последних символов независимо от выделения текста в виджете и последующих добавлений текста.

Спасибо.



Отредактировано (Янв. 7, 2010 15:08:52)

Офлайн

#2 Янв. 8, 2010 11:52:11

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Tkinter - Text: установка метки в нужной позиции

что то я не совсем понял сути вопроса. Если нужно добавлять текст в разных стилях, то это делается примерно так:

#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()



Офлайн

#3 Янв. 8, 2010 12:27:20

vinchkovsky
От:
Зарегистрирован: 2009-06-08
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Tkinter - Text: установка метки в нужной позиции

Как все просто ;)

Спасибо.



Офлайн

  • Начало
  • » GUI
  • » Tkinter - Text: установка метки в нужной позиции[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version