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 :

Row et column pour un bouton [Python 3.X]


Sujet :

Tkinter Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Etudiant
    Inscrit en
    Juin 2018
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2018
    Messages : 14
    Par défaut Row et column pour un bouton
    Bonjour/Bonsoir.

    J'ai un code me permettant de récupèrer la localisation d'un bouton dans une grille. En effet, je récupère row et column pour l'afficher.
    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
    # coding: utf-8
    from tkinter import *
    import tkinter as tk
     
    main = Tk()
    main.title('CasioMaker by Tituya')
     
    taille_x = 127
    taille_y = 63
     
    def mouse(event):
    grid_info = event.widget.grid_info()
        print("Ligne:", grid_info["row"], "Colonne:", grid_info["column"])
     
    for ligne in range(taille_y):
        for colonne in range(taille_x):
            button = tk.Button(frame_b, borderwidth=1, background='white', width=2, height=1)
            button['command'] = lambda button=button: button.configure(background = 'black')
            button.grid(row=ligne, column=colonne)
     
    main.bind("<Button-1>", mouse)
     
    main.mainloop()
    Mais seulement, j'ai aussi des scrollbar ayant elles aussi des indications de row et column. Voila qui pose un probleme. En effet, dès que je clique sur une scrollbar, mon programme m'affiche sa position !

    J'aimerais donc savoir comment faire pour ne pas prendre compte de ses valeurs.

    Code de la scrollbar
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #Barre vertical
    vsbar = Scrollbar(frame, orient=VERTICAL, command=can.yview)
    vsbar.grid(row=0, column=1, sticky=NS)
    can.configure(yscrollcommand=vsbar.set)
    #Barre horizontal
    hsbar = Scrollbar(frame, orient=HORIZONTAL, command=can.xview)
    hsbar.grid(row=1, column=0, sticky=EW)
    can.configure(xscrollcommand=hsbar.set)
    Cordialement

  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 Tituya Voir le message
    J'aimerais donc savoir comment faire pour ne pas prendre compte de ses valeurs.
    Le widget sur lequel on a cliqué est event.widget, il suffit de tester si c'est l'instance d'un tk.Button via isinstance(event.widget, tk.Button).Ceci dit, pas la peine de faire bind("<Button-1>", mouse) pour devoir trier ensuite... D'autant que les Button appellent déjà la fonction passée via "command" et que je vous ai déjà indiqué un petit tuto qui vous explique comment récupérer ce Button.

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

  3. #3
    Membre averti
    Homme Profil pro
    Etudiant
    Inscrit en
    Juin 2018
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2018
    Messages : 14
    Par défaut
    Merci, cela fonctionne très bien à présent !

    Mais ceci dit. J'ai un autre problème (plus complexe je suppose). Ce qui explique le changement d'intitulé.

    Mon "application" est faite pour calculatrice Casio. Dans le langage Casio, vous avez deux fonctions qui permettent d'afficher des points. PlotOn et F-Line.

    PlotOn affiche un point grâce à des coordonnées. F-Line affiche en une seule fois une ligne grâce aux coordonnées de ses deux extrémités.
    Vous comprendrez alors qu'afficher une multitude de point petit à petit est plus long et moins optimiser que d'afficher la ligne entièrement d'un seul coup.

    Voila mon problème. Pour le moment, je récupère les coordonnées de chaque points. Et j'aimerais donc savoir si c'est possible de détecter lorsqu'une multitude de points sont formées en ligne horizontale. Ce qui me permettrait alors de générer le résultat beaucoup plus rapidement. Il faudrait donc que mon programme vérifie si deux ou plusieurs points de couleurs noirs sont pressés cote à cote.

    Je ne sais absolument pas si c'est possible. Mon programme fonctionne avec les PlotOn mais n'est pas optimisé et rapide. C'est donc un souci "partiel" (c'est aussi un souci d'octet sur la calculatrice. Une seule fonction permettant l'affichage de 10 pixel prend beaucoup moins de place que 10 fonctions affichant tour à tour un pixel.)

    Cordialement.

  4. #4
    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,

    Je ne vois pas le rapport entre ce que vous racontez et le code que vous avez posté. Désolé.

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

  5. #5
    Membre averti
    Homme Profil pro
    Etudiant
    Inscrit en
    Juin 2018
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2018
    Messages : 14
    Par défaut
    C'est exact, le code faux n'a plus de rapport avec le sujet de ce message. C'était une autre question. Je pense que je devrais plutôt créer un nouveau sujet et fermer celui ci.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/02/2013, 09h38
  2. Localiser l'aide d'un programme
    Par vinc-mai dans le forum Langages de programmation
    Réponses: 0
    Dernier message: 03/08/2010, 22h07
  3. besoin d'aide pour récuperer valeur page web
    Par moldock dans le forum Débuter
    Réponses: 6
    Dernier message: 27/07/2009, 14h45
  4. Récuperer des données Outlook a l'aide de C#
    Par aitbouhou dans le forum C#
    Réponses: 4
    Dernier message: 24/04/2009, 11h26
  5. requete sql vba aide récuperer le plus grand
    Par alexkickstand dans le forum VBA Access
    Réponses: 8
    Dernier message: 30/10/2007, 16h13

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