Text zeilenweise löschen

Fragen zu Tkinter.
Antworten
frisei
User
Beiträge: 9
Registriert: Montag 8. April 2013, 14:20

Hallo Forum

betr. Tkinter und Text
Möchte in einem Text-Widget
Text löschen, und zwar die ersten x Zeilen.
folgendes geht
text.delete('1.0', END+'-321c') # von begin bis ende-321 Chars
aber es gibt eine zerstückelung des Textes.
Nun versuchte ich, zeilenweise zu löschen wie folgend
text.delete('1.0','10.0')
Hier sollten die ersten 10 Zeilen verschwinden,
aber es ist ALLES weg!

Habe ich was übersehen ??

LG
Fritz
BlackJack

@bastler: Kann ich nicht nachvollziehen. Hier verschwinden nur die ersten 10 Zeilen:

Code: Alles auswählen

import Tkinter as tk


def main():
    root = tk.Tk()
    text = tk.Text(root)
    text.pack()
    text.insert(
        tk.END, '\n'.join('Line {0}.'.format(i + 1) for i in xrange(50))
    )
    button = tk.Button(
        root, text='Delete', command=lambda: text.delete('1.0', '11.0')
    )
    button.pack()
    root.mainloop()


if __name__ == '__main__':
    main()
frisei
User
Beiträge: 9
Registriert: Montag 8. April 2013, 14:20

@ Hallo BlackJack

vielen Dank für die schnelle Hilfe.
Aber was ist der Unterschied zwischen Deiner Lösung mit

cb4=tk.Checkbutton(cb,text=" clr Txt mini ",indicatoron=False,
command=lambda: text.delete('1.0', '11.0'))

und meinem erfolglosen Tun ??

def clrtxtmin():
text.delete('1.0','10.0')
.......
cb4=tk.Checkbutton(cb,command=clrtxtmin,text=" clr Txt mini ",indicatoron=False)

und warum funzte dann die veränderte def ?

def clrtxtmin():
text.delete('1.0', END+'-321c') # von begin bis ende-321 Chars

nur halt mit veränderter "neuer erster Zeile"

Danke und freundliche Grüße
bastler
BlackJack

@bastler: Kann ich Dir nicht sagen. Das sollte äquivalent sein. Also zumindest sofern die `clrtxtmin()` (furchtbarer Name übrigens) irgendwo definiert ist wo der Name `text` auch zum richtigen Objekt aufgelöst werden kann.
Antworten