2010-09-01 5 views
0

Ce code fonctionne correctement et produit des checkbuttons dans une longue liste longue.tkinter en python. .pack fonctionne, mais .grid ne produit rien

def createbutton(self,name): 
    var = IntVar() 
    account = name[0] 
    chk = Checkbutton(self.root, text=account, variable=var) 
    chk.pack(side = BOTTOM) 
    self.states.append((name,var)) 

Le problème est que la liste des boutons est si longue, qu'il étend plus loin alors la longueur de mon écran, je veux les mettre dans une grille, afin que je puisse avoir peut-être 10 checkbuttons dans une colonne . Juste pour tester la capacité, je l'ai fait:

def createbutton(self,name): 
    var = IntVar() 
    account = name[0] 
    chk = Checkbutton(self.root, text=account, variable=var) 
    chk.grid(column=0) 
    self.states.append((name,var)) 

Et rien ne se passe, pas d'interface tk ouvre et le programme attend juste. S'il vous plaît aider!

+1

Hmm .. ce code devrait fonctionner. Pourriez-vous fournir le code entier? –

+0

Je l'ai compris. Avait un .pack ailleurs dans le code et tkinter n'aime pas quand les deux sont placés dans le même maître. Merci! – Alex

Répondre

1

Est-il possible que vous ayez d'autres widgets dans la fenêtre racine, et qu'ils soient placés là en utilisant le pack? Si vous essayez d'utiliser pack et grid dans le même conteneur, votre application peut entrer dans une boucle infinie car chaque gestionnaire a du mal à contrôler le conteneur.

+0

Vous avez absolument raison. Je l'ai compris avant de poster. J'avais un .pack dans un autre code qui provoquait cela. Je vous remercie!! – Alex

Questions connexes