2014-06-08 6 views
3

J'essaye de créer une boîte d'entrée Tkinter, mais j'ai besoin de plus d'espace qu'une seule ligne. Il semble quePython Tkinter ScrolledText

self.scroll = ScrolledText.ScrolledText(self.tk).pack() 

est la plus belle façon de le faire en ce moment, mais je ne sais pas comment obtenir le texte saisi de self.scroll et l'utiliser pour autre chose, theres aucune documentation claire non plus. Est-ce que quelqu'un sait?

Répondre

5

Erreur:

self.scroll = ScrolledText.ScrolledText(self.tk).pack() 

cette façon, vous attribuez pack() résultat à self.scroll (non ScrolledText)
et pack() retourne toujours None.

toujours:

self.scroll = ScrolledText.ScrolledText(self.tk) 
self.scroll.pack() 

Et voir maintenant la norme Text Widget documentation comment obtenir/texte défini.

from tkinter import * 
import tkinter.scrolledtext as ScrolledText 

master = Tk() 

st = ScrolledText.ScrolledText(master) 
st.pack() 

st.insert(INSERT, "Some text") 
st.insert(END, " in ScrolledText") 

print(st.get(1.0, END)) 

master.mainloop() 
1

Vous pouvez avoir des lignes mutliple en modifiant le paramètre hauteur:

sText = ScrolledText.ScrolledText(root, height=15) 
sText.pack() 

Obtenez le contenu en utilisant:

words = sText.get(1.0,END) 

Hope that helps!