IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tkinter Python Discussion :

Afficher une variable dans une insertion de texte


Sujet :

Tkinter Python

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 41
    Par défaut Afficher une variable dans une insertion de texte
    Bonjour,

    Je cherche à insérer une simple variable en int (et en string plus tard, mais dans l'exemple qui suit en int) dans du texte, comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    a = 57
    print("Vous avez", a, "euros.")
    Là, c'est fait avec le print() qui affiche le résultat dans la console, mais moi je veux le faire dans une zone de texte de Tkinter. En gros, ça donnerai un truc comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    zonetexte.insert(END, "Vous avez", a, "euros.")
     
    ou
     
    zonetexte.insert(END, "Vous avez" + a + "euros.")
    Si vous voulez, voici comment je définis "zonetexte" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    zonetexte = Text(frametexte, width="70", height="23", wrap=WORD, borderwidth="3", relief="sunken", font="Verdana 11", bg="#ffffff", cursor="x_cursor")
    zonetexte.grid(sticky=N+S+W+E)
    Mais ce que j'ai proposé plus tard n'est pas fonctionnel, la syntaxe ne doit pas être la bonne.
    Voici l'erreur que ça me donne:
    TypeError: not all arguments converted during string formatting
    Savez-vous comment faire ?

    Merci par avance !

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Salut,

    Citation Envoyé par ColChope Voir le message
    Mais ce que j'ai proposé plus tard n'est pas fonctionnel, la syntaxe ne doit pas être la bonne.Voici l'erreur que ça me donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TypeError: not all arguments converted during string formatting
    Si j'essaie votre construction avec le widget text, j'obtiens:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> import tkinter as tk
    >>> text = tk.Text()>>> text.insert('end', 'aaa' + 12 + 'bbb')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: Can't convert 'int' object to str implicitly
    >>>
    et non l'erreur que vous reportez.

    Postez un code minimal qui permette de reproduire votre problème.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Le message d'erreur que tu montres ne devrait pas arriver avec le code affiché, mais en utilisant le formatage de string.

    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
    21
    22
    23
    24
    25
    26
     
    >>> t = "Vous avez %s euros" % 10
    >>> a = 10
    >>> t = "Vous avez %s euros" % a
    >>> t
    'Vous avez 10 euros'
    >>> t = "Vous avez %s %s" % a
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: not enough arguments for format string
    >>> t = "Vous avez %s %s" % (a, "euros")
    >>> t
    'Vous avez 10 euros'
    >>> t = "Vous avez {} euros".format(a)
    >>> t
    'Vous avez 10 euros'
    >>> t = "Vous avez {0} euros".format(a)
    >>> t
    'Vous avez 10 euros'
    >>> t = "Vous avez {1} euros".format(a)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    IndexError: tuple index out of range
    >>> t = "Vous avez {1} {0}".format("euros", a)
    >>> t
    'Vous avez 10 euros'

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 41
    Par défaut
    Okay, autant pour moi, j'ai résolu mon problème.

    C'était tout bête, il suffisait d'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    zonetexte.insert(END, "Vous avez "+ str(a)+ " euros.")
    Merci à vous pour votre aide !

Discussions similaires

  1. afficher le contenu d'une variable dans une fenetre
    Par Invité dans le forum GTK+ avec C & C++
    Réponses: 1
    Dernier message: 20/07/2009, 10h25
  2. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  3. afficher le contenu d'une variable dans une document.write
    Par argon dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/11/2008, 22h38
  4. Réponses: 1
    Dernier message: 15/02/2007, 00h24
  5. Mettre une valeur d'une table dans une variable
    Par Raphou96 dans le forum Access
    Réponses: 5
    Dernier message: 06/02/2006, 15h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo