Seite 1 von 1

Line angabe - Tkinter

Verfasst: Donnerstag 7. Juli 2011, 17:30
von jtschoch
Hi

ich lese bei meinen Prog. ein text aus einer Txt-Datei aus und gebe ich über

Code: Alles auswählen

Tkinter.Label()
aus.
Meine Frage ist wie kann ich

Code: Alles auswählen

bg = red
(color) bloß an einer bestimmten stelle des textes anzeigen lassen?

Re: Line angabe - Tkinter

Verfasst: Donnerstag 7. Juli 2011, 17:56
von Xynon1
in dem man ein getaggtes Text widget nimmt und kein Label

Re: Line angabe - Tkinter

Verfasst: Donnerstag 7. Juli 2011, 18:11
von jtschoch
kann man pro Zeile ein label erstellen?

mit den zeilen auslesen weiß ich schon

Re: Line angabe - Tkinter

Verfasst: Donnerstag 7. Juli 2011, 18:20
von Xynon1
klar aber voll sinnfrei wenn man ein Text widget nimmt

ich weiß es auch

Re: Line angabe - Tkinter

Verfasst: Donnerstag 7. Juli 2011, 18:59
von jtschoch
Und wie kann mann herrausfinden wo ein bestimmts Wort liegt in (line.control) angabe

Re: Line angabe - Tkinter

Verfasst: Donnerstag 7. Juli 2011, 19:19
von Xynon1
Den Link hatte ich dir glaube ich schon mal geschrieben:
http://www.python-forum.de/viewtopic.php?p=185879#p185879 hat geschrieben:

Code: Alles auswählen

def highlight(self, keyword, color):
      lines_length = []
      for line in self.text.split("\n"):
         lines_length.append(len(line)+1)
     
      line = 1
      for match in re.finditer(keyword, self.text):
         start = match.start()
         while start - sum(lines_length[:line]) >= 0:
            line += 1

         start -= sum(lines_length[:line-1])
         start_index = "{0}.{1}".format(line, start)
         end_index = "{0}.{1}".format(line, start + len(keyword))
         self.tag_add(keyword, start_index, end_index)
           
      self.tag_config(keyword, foreground=color)
      self.tag_config(keyword, font=("courier",8,"bold"))
Man müsste das nur leicht anpassen.

Re: Line angabe - Tkinter

Verfasst: Donnerstag 7. Juli 2011, 19:31
von jtschoch
danke