2012-11-03 3 views
2

J'essaie de créer une interface graphique de base en utilisant Tkinter et j'ai une zone de saisie à côté de mon label en utilisant un gestionnaire Grid, mais la fenêtre ne s'affiche pas quand j'utilise .grid() avec mon objet Entry.Utilisation de la zone d'entrée avec Tkinter dans le gestionnaire de grille?

Cela fonctionne quand j'utilise .pack(), ce qui est étrange parce que j'ai entendu ne pas utiliser .pack() quand j'ai d'autres choses utilisant .grid() dans le même widget. Mais je veux utiliser .grid() parce que je veux être capable de l'organiser comme je veux.

Le code ci-dessous, j'ai des problèmes avec l'objet d'entrée showName. L'instruction .pack() commentée est celle qui fonctionne, l'instruction .grid() est celle qui ne fonctionne pas.

Est-ce que quelqu'un sait quel est le problème avec cela?

from Tkinter import * 

class RenamerGUI(): 
    def __init__(self, master): 
     frame = Frame(master) 
     frame.pack() #Make frame visible 

     self.exit = Button(frame, text = "Exit", fg = "red", command = frame.quit) 

     self.csv2tsv = Button(frame, text = "csv2tsv", fg = "green", bg = "black", command=self.csv2tsv) 
     self.epguidestsvFormatter = Button(frame, text = "epguidestsvFormatter", fg = "green", bg = "black", command = self.epguidestsvFormatter) 
     self.epNamesList = Button(frame, text = "epNamesList", fg = "green", bg = "black", command = self.epNamesList) 
     self.SeasonSplitter = Button(frame, text = "SeasonSplitter", fg = "green", bg = "black", command = self.SeasonSplitter) 
     self.Renamer = Button(frame, text = "Renamer", fg = "green", bg = "black", command = self.Renamer) 

     self.showLabel = Label(frame, text = "Show: ") 

     self.showName = Entry(master) 

     self.get = Button(frame, text = "Get", command = self.textgetter) 


     self.exit.grid(row=3, column=4) 
     self.csv2tsv.grid(row=1, column = 0) 
     self.epguidestsvFormatter.grid(row=1, column=1) 
     self.epNamesList.grid(row=1, column=2) 
     self.SeasonSplitter.grid(row=1, column=3) 
     self.Renamer.grid(row=1, column=4) 
     self.showLabel.grid(row=2) 
     self.showName.grid(row=2, column=1) 
     #self.showName.pack(side=BOTTOM) 
+0

Pourquoi la société mère pour l'entrée spécifiée comme maître au lieu de cadre? –

+0

Haha, merci beaucoup. Problème stupide. Merci d'avoir répondu – Donuts

Répondre

2

L'entrée a le parent mauvais:

self.showName = Entry(master) 

devrait être

self.showName = Entry(frame) 
Questions connexes