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 :

Problèmes cases Checkbutton


Sujet :

Tkinter Python

  1. #1
    Membre expérimenté
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Points : 1 742
    Points
    1 742
    Par défaut Problèmes cases Checkbutton
    Salut les pythons,
    J'ai pas toutes me cases a leurs place dans ma ligne de checkbutton ceux-çi s'ordonnant par rapport au texte et a la taille du widget j'aimerai avoir toutes les cases a cocher aligner, mais comme les valeurs textuelles sont semi-aléatoires j'ai un petit soucis.
    La dernière fois que j'ai affronter cette situation les Checkbutton avait des valeurs textuelles statique donc en jouant sur les espaces je me suis arranger, mais cette fois meme un :
    taille_du_wiget_checkbutton=16
    Checkbutton(fenetre, text=(16-len(texte_a _inserer))*' '+texte_a _inserer)
    Ne fonctionne pas bien: Il ya toujours des différences, les cases ne sont pas aligner et je ne connait pas d'option permettant de placer les cases.
    Si quelqu'un peut m'aider a aligner mes cases sa serai sympa sinon j'en parlerai a mon psy.

  2. #2
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonjour Luke,

    C'est au Geometry Manager (pack, grid, place) de faire cela via fill/expand et le conteneur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #!/usr/bin/env python
    # -*- coding: UTF-8 -*-
    #
    #
    from Tkinter import *
     
    textes = ["Salut les pythons", "J'ai pas toutes me cases a leurs place dans ma ligne de checkbutton ceux-çi s'ordonnant par rapport au texte", "La dernière fois que j'ai affronter cette situation", "sinon j'en parlerai a mon psy"]
    fenetre = Tk()
    for lgn in textes:
        Checkbutton(fenetre, text=lgn).pack(fill=BOTH, expand=1)
    Button(fenetre, text="Quit", command=fenetre.quit).pack()
    fenetre.mainloop()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #!/usr/bin/env python
    # -*- coding: UTF-8 -*-
    #
    #
    from Tkinter import *
     
    textes = ["Salut les pythons", "J'ai pas toutes me cases a leurs place dans ma ligne de checkbutton ceux-çi s'ordonnant par rapport au texte", "La dernière fois que j'ai affronter cette situation", "sinon j'en parlerai a mon psy"]
    fenetre = Tk()
    conteneur = Frame(fenetre)
    for lgn in textes:
        Checkbutton(conteneur, text=lgn, anchor=W).pack(fill=BOTH, expand=1)
    conteneur.grid(row=0, column=0, padx=5, pady=5)
    Button(fenetre, text="Quit", command=fenetre.quit).grid(row=0, column=1, padx=5, pady=5)
    fenetre.mainloop()
    @+

    Edit : J'avais oublier (et je pense que c'est ce que tu recherche) anchor
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #!/usr/bin/env python
    # -*- coding: UTF-8 -*-
    #
    #
    from Tkinter import *
     
    textes = ["Salut les pythons", "J'ai pas toutes me cases a leurs place dans ma ligne de checkbutton ceux-çi s'ordonnant par rapport au texte", "La dernière fois que j'ai affronter cette situation", "sinon j'en parlerai a mon psy"]
    fenetre = Tk()
    conteneur = Frame(fenetre)
    for lgn in textes:
        Checkbutton(conteneur, text=lgn).pack(anchor=W)
    conteneur.grid(row=0, column=0, padx=5, pady=5)
    Button(fenetre, text="Quit", command=fenetre.quit).grid(row=0, column=1, padx=5, pady=5)
    fenetre.mainloop()
    @++

  3. #3
    Membre expérimenté
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Points : 1 742
    Points
    1 742
    Par défaut
    Merci pour la réponse,
    mais j'ai oublier de préciser que mes Checkbuttons se génèrent dans un widget Text donc je ne sais pas si le directeur de géométrie intervient dans mon cas, (c'est grave docteur ?) je vais essayer de le faire intervenir sinon je dois changer mon conteneur.
    Merci beaucoup.

  4. #4
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Pas de problème
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #!/usr/bin/env python
    # -*- coding: UTF-8 -*-
    #
    #
    from Tkinter import *
     
    textes = ["Salut les pythons", "J'ai pas toutes me cases a leurs place dans ma ligne de checkbutton ceux-çi s'ordonnant par rapport au texte", "La dernière fois que j'ai affronter cette situation", "sinon j'en parlerai a mon psy"]
    fenetre = Tk()
    conteneur = Text(fenetre)
    for lgn in textes:
        Checkbutton(conteneur, text=lgn).pack(anchor=W)
    conteneur.grid(row=0, column=0, padx=5, pady=5)
    Button(fenetre, text="Quit", command=fenetre.quit).grid(row=0, column=1, padx=5, pady=5)
    fenetre.mainloop()
    @+

  5. #5
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Sinon
    window_config(index, **options) (window_configure(index, cnf=None, **kw))
    window_create(index, **options)

    @++

  6. #6
    Membre expérimenté
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Points : 1 742
    Points
    1 742
    Par défaut J'ai vraiment une case en moins
    Merci,
    Mais j'ai un sérieux problème, je n'arrive pas a appliquer ton code, sans vouloir t'offenser, sa ne marche pas le .pack(anchor=W), les cases des checkbuttons ne sont pas aligner ce qui n'est pas grave car mes données textuelles a insérer sont semi-aléatoire c.a.d que je peut les aligner manuellement une a une et mon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    taille_du_wiget_checkbutton=16
    Checkbutton(fenetre, text=(16-len(texte_a _inserer))*' '+texte_a _inserer)
    ne fonctionnant pas car un "i" n'as pas la meme taille (bounding box ?) qu'un "m" par exemple dans un widget qui ne fonctionne pas en colonnes.Je crois que c'est parce que tu as mal saisi: je n'ai aucun probléme pour insérer un checkbutton par ligne dans mon widget Text mais je n'arrive pas aligner les cases a cocher verticalement en fonction du texte du Checkbutton qui change selon celui qui est générer.

    Mais j'ai un problème plus grave avec mon code:
    Je n'arrive pas a récupérer la valeurs des Checkbuttons générer automatiquement, j'arrive a récupére les instances ou les noms(identifiant) mais j'arrive pas en m'en servir pour récupérer leurs valeurs, meme pas grace a un IntVar().
    Voici un pseudo code très basique pour comprendre mon problème.
    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
     
    from Tkinter import *
    def insert() :
      global b
      b.window_create(END, window=Checkbutton(b))
     
    def instanz() :
      global b
      for values in b.children.keys() :
        b.children.get(values) #comment je peut récupérer la valeur des Checkbuttons ?
     
    def names() :
      global b
      b.window_names()# Comment on se sert de ces identifiant car on ne peut les placer comme nom de variables ?
     
    a=Tk()
    b=Text(a)
    a.mainloop()
    Si vous vous dite que mon code est nulle c'est normale c'est parce qu'il me manque une case.

  7. #7
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonjour,

    b.insert(END, '\n') ou utiliser un Widget Frame

    @+

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

Discussions similaires

  1. [VxiR2] Problème Case migration forcée BOXIR2
    Par jonki dans le forum Deski
    Réponses: 1
    Dernier message: 27/01/2016, 15h45
  2. problème case when then jpql
    Par hadmarin dans le forum Persistance des données
    Réponses: 0
    Dernier message: 08/09/2011, 10h31
  3. [AC-2003] Problème case à cocher
    Par lucas-18 dans le forum IHM
    Réponses: 2
    Dernier message: 06/10/2009, 18h25
  4. [Perl] Problème de Checkbutton
    Par Developperdu02 dans le forum GTK+
    Réponses: 4
    Dernier message: 28/01/2008, 19h47
  5. Problème cases à cocher avec connection Mysql
    Par cams dans le forum SQL Procédural
    Réponses: 8
    Dernier message: 01/12/2005, 14h13

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