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

Python Discussion :

Modification d'un text dans un boutton canvas [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Collégien
    Inscrit en
    Août 2024
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Août 2024
    Messages : 13
    Par défaut Modification d'un text dans un boutton canvas
    Bonjour, je voulais vous demander comment puis-je changer le texte d'un bouton canvas.
    J'ai essayé plusieurs méthode comme configurer mais sans succès, ou devrais-je détruire le bouton et un crée un autre avec un texte différent ?

    Code:

    Code Python : 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
    27
    from tkinter import *
    fen = Tk()
    clicks = 0
     
    fen.title("CLICKER")
     
    fen.geometry("600x600")
     
    canvas = Canvas(fen, width=200, height=200)
    circle = canvas.create_oval(50, 50, 150, 150, fill="burlywood", outline="")
     
     
    canvas.create_text(100, 100, text=clicks, fill="white", font=("Arial", 12, "bold"))
     
    canvas.place(relx=0.5, rely=0.5, anchor="center")
     
     
    def circle_click(event):
        global clicks
        x, y = event.x, event.y
        if 50 <= x <= 150 and 50 <= y <= 150:
            clicks = clicks + 1
    #normalement le changement devrait se faire ici selon moi
     
    canvas.bind("<Button-1>", circle_click)
    fen.mainloop()
    canvas.pack()

    Cordialement

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 742
    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 742
    Par défaut
    Salut,
    Citation Envoyé par TristanTh Voir le message
    je voulais vous demander comment puis-je changer le texte d'un bouton canvas.
    Ce n'est pas un bouton mais un item de type text.
    Pour en faire un "bouton", il faudrait utiliser .tag_bind et... ny ajouter un rectangle...
    Pour le modifier, il faut déjà pouvoir le designer et donc lui associer un tag ou avoir récupéré l'identifiant retourné par .create_text pour lui appliquer canvas.itemconfigure('<tag or iid>', text= click)Pour les détails, il devrait y avoir ce qu'il faut dans votre documentation préférée.

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

  3. #3
    Membre averti
    Homme Profil pro
    Collégien
    Inscrit en
    Août 2024
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Août 2024
    Messages : 13
    Par défaut
    Merci énormément, j'ai a présent réussi a modifier le nombre affiché.
    cordialement

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 742
    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 742
    Par défaut
    Histoire de montrer une solution qui n'utile que des fonctionnalités du canvas pour réaliser plusieurs boutons:
    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
    27
    28
    29
    30
    import tkinter as tk
     
    SIZE = 25
    BUTTON = 'button'
     
    def button_create(canvas, x, y):
        tags = (BUTTON, )
        canvas.create_oval(x-SIZE, y-SIZE, x+SIZE, y+SIZE, fill='grey', tag=tags)
        canvas.create_text(x, y, text=0, tag=tags, fill='white', 
                           font=("Arial", 12, "bold"))
     
    def on_click(canvas):
        u = canvas.find_withtag('current')[-1]
        if canvas.type(u) == 'oval':
            u = [z for z in canvas.find_enclosed(*canvas.bbox(u)) if z != u][-1]
        v = int(canvas.itemcget(u, 'text'))
        canvas.itemconfigure(u, text=(v+1))
     
    if __name__ == '__main__':
     
        root = tk.Tk()
        canvas = tk.Canvas(root)
        canvas.tag_bind(BUTTON, "<Button-1>", lambda e: on_click(e.widget))
        canvas.pack()
     
        for i in range(2):
            z = 10 + SIZE + 2*i*SIZE
            button_create(canvas, z, z)
     
        tk.mainloop()
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AS3] Modification d'un texte dans un MovieClip en Dynamic
    Par Khrono dans le forum ActionScript 3
    Réponses: 7
    Dernier message: 29/12/2008, 14h34
  2. Modification d'un texte dans un bouton
    Par atlantis dans le forum ActionScript 3
    Réponses: 3
    Dernier message: 01/04/2008, 14h05
  3. Modification intempestive de texte dans une cellule
    Par Gorfael dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/12/2007, 00h20
  4. [Tkinter] Créa et modif texte dans canvas
    Par airod dans le forum Tkinter
    Réponses: 2
    Dernier message: 27/08/2006, 00h24
  5. Modification d'un texte dans une fenetre "d'erreur"
    Par PAUL87 dans le forum Access
    Réponses: 8
    Dernier message: 21/10/2005, 13h12

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