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 :

Supprimer une colonne par click


Sujet :

Tkinter Python

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Points : 273
    Points
    273
    Par défaut Supprimer une colonne par click
    Bonjour,

    j'ai créé une grille par la méthode .grid et je cherche à écrire une fonction qui me permettrait de supprimer la colonne sur laquelle je clique.
    Auriez-vous une idée sur la manière de procéder, svp?

    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
    31
    32
    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
     
    from tkinter import *
     
    # on crée la fenêtre principale
    fenetre = Tk()
     
    def delete():
        print("delete")
     
     
    j = 1
    while j < 10:
        i=1
        while i < 10:
            canvas = "canvas" + str(i) + str(j)
            canvas = Canvas(fenetre, bg="pale goldenrod")
            canvas.grid(row=j, column=i, sticky=NW+SE)
            label = Label(canvas, bg="white", text="BLANC", width=10, height=5, borderwidth=2, relief="solid")
            label.grid(row=j, column=i, sticky=NW+SE)        
            i=i+1
        j=j+1
     
    # on ajoute un bouton quitter
    button1 = Button(fenetre, text='Delete', width=14, height=4, command=delete)
    button1.grid(row =0, column =0, padx =0, pady =0)
     
     
     
    # on lance la boucle principale
    fenetre.mainloop()
    Merci d'avance,
    Cordialement
    Arsène

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 778
    Points
    36 778
    Par défaut
    Salut,

    Citation Envoyé par Arsene12 Voir le message
    j'ai créé une grille par la méthode .grid et je cherche à écrire une fonction qui me permettrait de supprimer la colonne sur laquelle je clique.
    On récupère la liste des slaves de la colonne via .grid_slaves et on passe le tout à .grid_forget ou a .grid_remove ou bien vous récupérez les slaves depuis le dictionnaire (que vous n'utilisez toujours pas).

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

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Points : 273
    Points
    273
    Par défaut
    Merci beaucoup. J'ai utilisé .grid_forget() et ça marche impeccable.

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
     
    from tkinter import *
     
    # on crée la fenêtre principale
    fenetre = Tk()
     
    def delete():
        #print(canvas.grid_slaves(row, column))
        for canvas in fenetre.grid_slaves():
          if int(canvas.grid_info()["column"]) == 5:
            canvas.grid_forget()
     
     
     
    def click(event):
        canvas.create_line(event.x, event.y, coords)
        canvas.after(1000,canvas.delete)
        #canvas_id = canvas.create_line(event.x, event.y, coords)
        #canvas.after(1000, canvas.delete, canvas_id)
     
     
    j = 1
    while j < 10:
        i=1
        while i < 10:
            canvas = "canvas" + str(i) + str(j)
            canvas = Canvas(fenetre, bg="pale goldenrod")
            canvas.grid(row=j, column=i, sticky=NW+SE)
            if i == 5:
                label = Label(canvas, bg="white", text="A SUPPRIMER", width=10, height=5, borderwidth=2, relief="solid")
            else:
                label = Label(canvas, bg="white", text="BLANC", width=10, height=5, borderwidth=2, relief="solid")
            label.grid(row=j, column=i, sticky=NW+SE)        
            i=i+1
        j=j+1
     
    # on ajoute un bouton quitter
    button1 = Button(fenetre, text='Delete', width=14, height=4, command=delete)
    button1.grid(row =0, column =0, padx =0, pady =0)
    button1.bind('<B1-Motion>',delete)    
     
    # on lance la boucle principale
    fenetre.mainloop()

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 06/10/2011, 12h56
  2. Supprimer une colonne avec valeurs par défaut
    Par SlashOwnsU dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 18/09/2006, 10h10
  3. Supprimer une colonne SQLServer 6.5
    Par Mr N. dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/09/2004, 17h16
  4. Instruction SQL qui supprime une colonne d'une table
    Par tseg dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/10/2003, 20h47
  5. Supprimer une colonne sous SQL Serveur 2000
    Par WOLO Laurent dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 14/07/2003, 12h24

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