Pour obtenir l'entrée Tkinter à partir de la zone de texte, vous devez ajouter quelques attributs supplémentaires à la .get()
fonction normale . Si nous avons une zone de texte myText_Box
, alors c'est la méthode pour récupérer son entrée.
def retrieve_input():
input = self.myText_Box.get("1.0",END)
La première partie, "1.0"
signifie que l'entrée doit être lue à partir de la première ligne, le caractère zéro (c'est-à-dire le tout premier caractère). END
est une constante importée définie sur la chaîne "end"
. La END
partie signifie lire jusqu'à ce que la fin de la zone de texte soit atteinte. Le seul problème avec ceci est qu'il ajoute en fait une nouvelle ligne à notre entrée. Donc, pour résoudre ce problème, nous devrions changer END
pour end-1c
(Merci Bryan Oakley ) Le caractère -1c
supprime 1, alors que -2c
cela signifierait supprimer deux caractères, et ainsi de suite.
def retrieve_input():
input = self.myText_Box.get("1.0",'end-1c')
"end-1c"
ouEND+"1c"
, sinon vous obtiendrez la nouvelle ligne supplémentaire que le widget de texte ajoute toujours..get('1.0', 'end-1c')
end+1c
ce que cela ajouterait une nouvelle ligne au code? Enfin, Bryan et Honest Abe, merci beaucoup de m'avoir aidé avec mes simples questions sur Tkinter et Python. Vous m'avez vraiment aidé à acquérir une meilleure compréhension de la langue, et vous avez toujours été courtois, rapide et, mieux que tout, bien informé. Je suis sûr que vos conseils m'aideront alors que je vais au lycée et au-delà!'end-1c'
sont nécessaires pour qu'il s'agisse d'une seule chaîne.'end'
est un alias pour l'index après le dernier caractère. Donc si'end'
c'était'3.8'
alors ce'end-1c'
serait'3.7'
. Je veux à nouveau recommander de revoir: Index des widgets de texte .Voici comment je l'ai fait avec python 3.5.2:
avec cela, quand j'ai tapé "bla bla" dans le widget texte et appuyé sur le bouton, tout ce que j'ai tapé était imprimé. Je pense donc que c'est la solution pour stocker les entrées utilisateur du widget Texte vers la variable.
la source
Pour obtenir une entrée Tkinter à partir de la zone de texte en python 3, le programme complet de niveau étudiant utilisé par moi est le suivant:
la source
Afin d'obtenir la chaîne dans un
Text
widget on peut simplement utiliser laget
méthode définie pourText
laquelle accepte 1 à 2 arguments commestart
etend
positions de caractèrestext_widget_object.get(start, end=None)
,. Si seulementstart
est passé etend
n'est pas passé, il ne renvoie que le caractère unique positionné surstart
, siend
est également passé, il renvoie tous les caractères entre les positionsstart
etend
sous forme de chaîne.Il existe également des chaînes spéciales, qui sont des variables du Tk sous-jacent. L'un d'eux serait
"end"
outk.END
qui représente la position variable du tout dernier caractère dans leText
widget. Un exemple serait de renvoyer tout le texte du widget, avectext_widget_object.get('1.0', 'end')
outext_widget_object.get('1.0', 'end-1c')
si vous ne voulez pas le dernier caractère de nouvelle ligne.Démo
Voir la démonstration ci-dessous qui sélectionne les caractères entre les positions données avec des curseurs:
la source
Je pense que c'est une meilleure façon
En appuyant sur le bouton, la valeur dans le champ de texte serait imprimée. Mais assurez-vous d'importer le ttk séparément.
Le code complet d'une application de base est:
la source
J'ai rencontré le problème d'obtenir le texte entier du widget Texte et la solution suivante a fonctionné pour moi:
Où 1.0 signifie la première ligne, le caractère zéro (c'est-à-dire avant le premier!) Est la position de départ et END est la position de fin.
Merci à Alan Gauld dans ce lien
la source
Disons que vous avez un
Text
widget appelémy_text_widget
.Pour obtenir des informations du,
my_text_widget
vous pouvez utiliser leget
fonction.Supposons que vous ayez importé
tkinter
. Définissons d'my_text_widget
abord, faisons-en juste un simple widget de texte.Pour obtenir l' entrée d'un
text
widget, vous devez utiliser laget
fonction, les widgetstext
et les deux l'entry
ont.La raison pour laquelle nous l'enregistrons dans une variable est de l'utiliser dans le processus ultérieur, par exemple, pour tester quelle est l'entrée.
la source
Text
widgetget
nécessite au moins un argument.