2011-01-05 10 views
5

Ich habe ein Tkinter Widget, und ich würde gerne wissen, wie viele Zeilen es enthält.Die Gesamtanzahl der Zeilen in einem Tkinter Text-Widget abrufen?

Ich kenne die text.cget("height") Methode, aber das sagt mir nur, wie viele Zeilen angezeigt werden. Ich würde gerne wissen, wie viele Zeilen es insgesamt gibt.

Ich verwende diese Informationen, um zu versuchen, meine eigene benutzerdefinierte Bildlaufleiste zu erstellen, so dass jede Hilfe sehr geschätzt werden würde.

+0

Wenn Sie die Gesamtanzeigezeilen benötigen, überprüfen heraus, dass Ich habe letzten Endes für die verbleibenden Zeilen anstelle von insgesamt beantwortet): http://stackoverflow.com/questions/29428515/whats-the-most-efficient-way-to-get-a-tkinter-text-widgets-total-display- Linien – Shule

Antwort

8

Verwenden Sie die Methode index, um den Wert von 'end' zu finden, der die Position unmittelbar nach dem letzten Zeichen im Puffer ist.

>>> text_widget.index('end') # returns line.column 
'3.0' 

>>> int(text_widget.index('end').split('.')[0]) - 1 # returns line count 
2 

aktualisieren pro Bryan Oakley Kommentar: meine Antwort hier, um Hilfe (und Änderungsstartflag und dementsprechend beenden, und bearbeiten die Tatsache

>>> int(text_widget.index('end-1c').split('.')[0]) # returns line count 
2 
+3

Sie könnten auch ''end-1c'' verwenden, um zu vermeiden, dass Sie 1 subtrahieren müssen (obwohl der Wert nach dem". "gleich ist, wie viele Zeichen sich zuletzt befinden) Linie statt Null) –

+0

Danke, das hilft eine Tonne! Wenn ich mit meinem aktuellen Projekt fertig bin, werde ich wahrscheinlich einige der Widgets veröffentlichen, die ich als Erweiterung für Tkinter gemacht habe. Wenn es ein Interesse gibt. – rectangletangle

Verwandte Themen