S'il vous plait j’aimerais crée un petit programme ou l'on peut écrire un texte et l’envoyer pars mail...
J'ai déjà fait la partie mail mais je n'arrive pas a crée un champ de saisie en plusieurs ligne colle .
merci pour votre aide .
S'il vous plait j’aimerais crée un petit programme ou l'on peut écrire un texte et l’envoyer pars mail...
J'ai déjà fait la partie mail mais je n'arrive pas a crée un champ de saisie en plusieurs ligne colle .
merci pour votre aide .
Salut,
Ouvrez n'importe quelle documentation sur le widget Entry, vous devriez y trouver que pour saisir ou afficher plusieurs lignes, le widget Text est plus approprié.
- W
Bonjour pourriez vous m’envoyer un petit bloc de code de base je le modifierais...
J'ai déjà utiliser le widget texte mais plus comme un print et non comme un input ou un entry peut il retourner le texte pour le stocker dans une variable .
merci
Salut,
Si vous voulez utilisez le widget Text, il faut commencer par ouvrir la documentation sans être effrayé du tas de chose que vous y trouvez.
Puis vous réfléchissez un peu à votre cas d'utilisation. En gros, l'utilisateur va pouvoir saisir du texte jusqu'à ce qu'il clique sur un Button de validation. C'est le callback/commande associé qui va s'occuper de récupérer les informations dans les différents champs (y compris le contenu du widget Text).
Pour ce faire, la méthode est .get qui prend deux index en paramètre.
Vous avez repéré où çà explique ce que sont les index....
Et pour vous assurer que vous avez assez bien compris ce que çà raconte pour l'appliquer à votre cas, vous lancez la console Python, vous créez un widget Text, vous y insérez des lignes, et vous essayez de les récupérer avec .get.
Et à la fin non seulement vous aurez la réponse à votre question mais en plus vous serez un peu plus confiante côté utilisation de la documentation (i.e. le boulot de base du programmeur).
note: et si vous n'arrivez pas à faire fonctionner un truc aussi simple, vous aurez du code à poster pour montrer comment vous vous y prenez.
- W
j’ai essayer le bloc suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 from tkinter import * fen= Tk() input_mail = Text(fen, width=50, height=5) fen.mainloop()
Mais j'ai eu une page blanche classique
Salut,
C'est un bon début: on peut supposer que c'est à l'utilisateur de remplir cette page blanche.
Pour le reste, ou est le Button qui permet à l'utilisateur de signaler qu'il a terminé sa saisie?
Où est le callback déclenché par l'action sur ce Button qui va lire ce qui a été saisi?
- W
Le problème c'est que je ne peut pas remplir la page blanche ...
Pour le Button qui permet à l'utilisateur de signaler qu'il a terminé sa saisie et le callback je ne sais pas comment mis prendre, avez vous une documentation?
Merci
Si vous voulez faire des choses compliquées avant d'avoir appris à réaliser des trucs aussi simples, sûr que ce n'est pas facile mais si vous n'avez pas encore pris le temps d'ouvrir un tuto. pour apprendre les bases de la programmation avec tkinter, il est temps de s'y mettre. Le Swinnen est peut être fait pour vous.
- W
Le bock de code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 from tkinter import * fen= Tk() def print_mail(event): text.get() input_mail = Text(fen, width=50, height=5) v = input_mail.bind("<Return>", print_mail) b0 = Button(fen, text="Valider", command=v) b1 = Button(fen, text="OK", command=fen.destroy) input_mail.pack(side = TOP) b0.pack(side = BOTTOM) b1.pack(side = BOTTOM) fen.mainloop()
Le résultat : j’obtiens une fenêtre avec un possibilité de saisie de 5 ligne avec en bas 2 bouton, le bouton OK fonction mais pas VALIDER ...
Merci d'avance
Salut,
Super, on y est presque.
.Le résultat : j’obtiens une fenêtre avec un possibilité de saisie de 5 ligne avec en bas 2 bouton, le bouton OK fonction mais pas VALIDER ..
Je ne comprends pas ce que vous essayez de faire avec v = input_mail.bind("<Return>", print_mail). En tous cas, si vous voulez qu'un appui sur "Valider" appelle la fonction "print_mail", çà serait plus simple de lui passer cette fonction là en argument de "command", non?
- W
Je veux juste que quand l'utilisateur presse entre ce qui a été saisie dans le widjet text (le mail) sois stocker dans une variable mail et que en meme temps l'utilisateur est finis ...
OK j'avais mal compris car le mail fera en principe plus d'une ligne .
Je n'arrive pas a stocker la valeur du widjet text dans une variable par l'intermédiaire du bouton valider ...
code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 from tkinter import * root=Tk() def recupere_input(): Valeur_input = textBox.get("1.0","end-1c") mail = Valeur_input print(mail) textBox = Text(root, height=10, width=75) textBox.pack() button_valider=Button(root, height=1, width=10, text="Valider", command = lambda: recupere_input()) button_quiter=Button(root, height=1, width=10, text="Quitter", command = root.destroy) button_valider.pack() button_quiter.pack() mainloop()
résultat: ça fonction mail est bien printer mais je n'arrive pas a récupérer sa valeur dans le programme principale, ni avec return ni avec global(pour pouvoir envoyer sa valeur)...
Lorsque vous écrivez un programme avec une interface graphique comme tkinter, le programme principal se termine par l'équivalent de tk.mainloop() i.e. l'attente d'évènements qui vont déclencher l'appel de "callbacks" (ainsi nommés parce que s'ils sont fabriqués comme des fonctions, ils ne sont pas appelés par le programme mais par l'interface graphique: impossible de récupérer ce que çà retourne, on peut juste stocker des informations dans des variables globales).
Dans le tuto. que je vous ai mentionné çà parle de programmation pilotée par les évènements. C'est une autre façon de programmer que la programmation séquentielle que vous connaissez. Et çà demande du temps pour arriver à penser correctement la construction de ses programmes. D'où l'intérêt des tutos. (qu'il ne faut pas se contenter de survoler mais prendre le temps d'apprendre en faisant les exercices proposés,...)
- W
Vous ne pouvez pas m'expliquer ?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager