2011-01-05 9 views
5

Ho un widget Tkinter Text e mi piacerebbe sapere quante righe contiene.Ottenere il numero totale di linee in un widget Tkinter Text?

Conosco il metodo text.cget("height"), tuttavia mi dice solo quante righe sono visualizzate. Mi piacerebbe sapere quante linee ci sono in totale.

Sto utilizzando queste informazioni per provare a creare la mia barra di scorrimento personalizzata, quindi qualsiasi aiuto sarebbe molto apprezzato.

+0

Se avete bisogno le linee di visualizzazione totale, prova anche la mia risposta qui per aiuto (e il cambiamento di inizio e fine di conseguenza, e di modifica per il fatto che Alla fine rispondevo per le linee rimanenti invece del totale): http://stackoverflow.com/questions/29428515/whats-the-most-efficient-way-to-get-a-tkinter-text-widgets-total-display- lines – Shule

risposta

8

Utilizzare il metodo index per trovare il valore di 'fine' che è la posizione subito dopo l'ultimo carattere nel buffer.

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

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

Aggiornamento per il commento di Bryan Oakley:

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

Puoi anche usare ''end-1c'' per evitare di dover sottrarre 1 (anche se il valore dopo". "sarà il numero di caratteri che si trova su quest'ultimo linea piuttosto che zero) –

+0

Grazie, questo aiuta un sacco! Quando avrò finito il mio progetto attuale probabilmente rilascerò alcuni dei widget che ho realizzato come estensione per Tkinter. Se c'è un interesse. – rectangletangle

Problemi correlati