2010-08-20 7 views
1

Je travaille sur un Gui et j'aimerais savoir comment créer une classe qui implémenterait un frame.Créer une classe d'image dans Tkinter Gui

par exemple.

class WindowContent(Tkinter.?) 
    """ This class would create a frame for my program window """ 


class App(Tkinter.Tk): 
    """ main window constructor """ 
    def __init__(self): 
     Tkinter.Tk.__init__(self) 
     program_window = WindowContent ? 
     self.config(window = window_content) ? 

MFG,

Répondre

1

Je trouve la réponse:

class WindowProgram(Tkinter.Frame) 
    """ This class creates a frame for my program window """ 
    def __init__(self, parent): 
     Tkinter.Frame.__init__(self, parent) 

class App(Tkinter.Tk): 
    """ application constructor """ 
    def __init__(self): 
     Tkinter.Tk.__init__(self) 
     self.window_program = Window_Program(self) 
0

Pourquoi voulez-vous une classe qui crée plusieurs cadres? Créer une classe qui crée plusieurs cadres n'est pas une très bonne solution. Vous n'avez pas besoin d'une seule classe pour cela. Créez des classes séparées pour chaque image ou créez simplement des méthodes dans votre application pour créer chaque image. Je préfère ce dernier, mais si vous voulez un cadre qui peut être utilisé dans plusieurs contextes, il est parfois logique de créer une classe.

Quand je fais une interface graphique je structure mon code comme ceci:

class App(Tkinter.Tk): 
    def __init__(self): 
     Tkinter.Tk__init__(self) 
     self.menubar = self.makeMenubar(...) 
     self.frame1 = self.makeFrame1(...) 
     self.frame2 = self.makeFrame2(...) 

     self.configure(menu=self.menubar) 
     self.frame1.grid(...) 
     self.frame2.grid(...) 

De cette façon, chaque section principale obtient sa propre méthode pour cacher les détails de la création de widget. Vous pouvez, bien sûr, avoir chaque image comme objet personnalisé, mais ce n'est généralement pas nécessaire.

+0

Merci pour la réponse. En fait j'ai déjà fait un cours pour la barre de menu (grâce à votre aide) donc je préférerais faire un cours pour le cadre aussi. Comment puis-je faire cela s'il vous plaît? – Bruno

Questions connexes