Discussion:
[Python-de] Tkinter Text-Widget, Text formatieren.
Albert Hermeling
2003-05-28 14:15:26 UTC
Permalink
Guten Abend,
ich probiere gerade das Text-Widget von Tkinter aus und haben zu diesem Zweck
das untenstehende Programm geschrieben. Das auch bis auf eine Sache gut
funktieoniert. Das Problem, wenn ich am Ende der Zeile keinen Umbruch
einfuege (\n), wird die naechste nicht Formatiert. Weiss einer woran das
liegt?

import Tkinter
import string
from Tkconstants import *


liste=["Das soll <bo> Fett geschrieben werden,</bo> aber Pronto.\n ",
"Dieser Satz hatt keinen <bo> Umbruch </bo>",
"Der Mann ist <bo> DICK </bo>\n" ]

tk=Tkinter.Tk()
text=Tkinter.Text(tk, wrap=WORD)

z=1
punkt='.'
null='0'

for i in liste:
y=string.find(i, '<bo>')
x=string.find(i, '</bo>') - 5
start=str(y)
ende=str(x)
zeile=str(z)

if y >= 0 and x >= 1:
a=string.replace(i, '<bo> ',"")
b=string.replace(a, '</bo>',"")
text.insert(zeile+punkt+null, b)
text.tag_add("boldc",zeile+punkt+start, zeile+punkt+ende)
text.tag_configure("boldc", font="\"MS Sans Serif\" 12 bold")
else:
text.insert(zeile+punkt+null, i)

z=z+1
text.pack()

Tkinter.mainloop()

Ich bedanke mich schon mal und wuensche noch eine guten Abend

Albert
Georg Mischler
2003-05-28 14:15:26 UTC
Permalink
Post by Albert Hermeling
ich probiere gerade das Text-Widget von Tkinter aus und haben zu diesem Zweck
das untenstehende Programm geschrieben. Das auch bis auf eine Sache gut
funktieoniert. Das Problem, wenn ich am Ende der Zeile keinen Umbruch
einfuege (\n), wird die naechste nicht Formatiert. Weiss einer woran das
liegt?
Das liegt wahrscheinlich daran, dass du deine "boldc" tags mit der
"zeile.zeichen"-Syntax jeweils der betreffenden Zeile zuordnest.
Ohne das Newline weiss aber Tkinter nicht, dass du an der Stelle
eigentlich eine neue Zeile anfangen wolltest.


-schorsch
--
Georg Mischler -- simulations developer -- schorsch at schorsch.com
+schorsch.com+ -- lighting design tools -- http://www.schorsch.com/
Loading...