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 :

Bouton en dessous d'une Grid


Sujet :

Tkinter Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    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
    Par défaut Bouton en dessous d'une Grid
    Bonjour,

    pourriez-vous me dire comment faire pour que mon bouton se positionne juste en dessous de la grid. Dans le code ci-dessus il se positionne bien en dessous mais avec un décalage vers la droite. Ce décalage est égal à la largeur de la grid.

    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
    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
    import tkinter as tk
    from tkinter import *
     
    # on crée la fenêtre principale
    fenetre = Tk()
     
    j = 1
    while j < 5:
        i=1
        while i < 5:
            canvas = "canvas" + str(i) + str(j)
            canvas = Canvas(fenetre, width=100,  height=100, bg="pale goldenrod")
            canvas.grid(row=j, column=i, sticky=NW+SE)     
            i=i+1
        j=j+1
     
    # on ajoute un bouton quitter
    button1 = Button(fenetre, text='Bouton', width=64)
    button1.grid(row=6, column=6, sticky=S)
     
    # on lance la boucle principale
    fenetre.mainloop()
    Merci d'avance,
    cordialement,
    Arsène

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

    Si je vois bien, tu as tes canvas dans quatre colonnes.

    Pourquoi mets-tu alors le bouton dans la colonne 6 ?

  3. #3
    Membre éprouvé
    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
    Par défaut
    Si je mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    button1.grid(row=6, column=0, sticky=S)
    c'est la grid qui est décalée à droite.

    Je pense qu'il faut mettre colum=1. Si l'on fait ça, la taille de la première colonne de la grid devient celle du bouton. Mais le bouton est bien positionner en dessous sur la gauche.
    Il doit falloir surement rajouter quelque chose pour éviter que la taille de la première colonne se modifie.

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Salut,

    Citation Envoyé par Arsene12 Voir le message
    Il doit falloir surement rajouter quelque chose pour éviter que la taille de la première colonne se modifie.
    Eviter que la première colonne se modifie ou faire en sorte que le Button occupe plusieurs colonnes? Relisez la documentation de .grid pour voir comment mettre en œuvre les différentes options.
    Vous pouvez aussi créer la grille de Canvas dans une Frame, puis afficher la Frame avec le Button "en dessous" en utilisant .pack ou .grid...

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

  5. #5
    Membre éprouvé
    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
    Par défaut
    Merci beaucoup,
    j'ai trouvé la bonne formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    button1.grid(row=5, column=1,  rowspan=4, columnspan=4, sticky='ew')
    Mais pour une grille de 20 cases de côtés au lieu de 4, ça marche pas :

    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
    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
    import tkinter as tk
    from tkinter import *
     
    # on crée la fenêtre principale
    fenetre = Tk()
     
    j = 1
    while j < 21:
        i=1
        while i < 21:
            canvas = "canvas" + str(i) + str(j)
            canvas = Canvas(fenetre, width=100,  height=100, bg="pale goldenrod")
            canvas.grid(row=j, column=i, sticky=NW+SE)     
            i=i+1
        j=j+1
     
    # on ajoute un bouton quitter
    button1 = Button(fenetre, text='Bouton', width=4)
    button1.grid(row=21, column=1,  rowspan=20, columnspan=20, sticky='ew')
     
    # on lance la boucle principale
    fenetre.mainloop()

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Citation Envoyé par Arsene12 Voir le message
    Mais pour une grille de 20 cases de côtés au lieu de 4, ça marche pas
    çà ne marche pas ne dit rien sur ce que vous constatez: un message d'erreur ou çà fait pas ce que vous voulez?
    Dans ce dernier cas, commencer par dire ce qu'on veut puis expliquer pourquoi les quelques lignes de code postées devraient le faire...

    - 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. Positionner un bouton au-dessous d'une map
    Par ginfo1 dans le forum Composants graphiques
    Réponses: 1
    Dernier message: 05/11/2012, 13h49
  2. mettre le bouton "parcourir " dans une grid
    Par mvc_dev dans le forum ASP.NET
    Réponses: 4
    Dernier message: 07/04/2011, 13h41
  3. bouton pour afficher/cacher une toolbar ??
    Par pi05 dans le forum MFC
    Réponses: 3
    Dernier message: 07/02/2005, 22h05
  4. [VC++ 6] Boutons permettant d'afficher une form
    Par cooladn dans le forum MFC
    Réponses: 3
    Dernier message: 09/12/2004, 16h17
  5. Boutons Radios qui charge une page php différente
    Par nebule dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/11/2004, 15h25

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