Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 02/05/2008, à 05:19

Abdou-g

wxPthon et des fenetre multiples

salut,
   j'ecris une interface graphique en wxpython, mais j'ai du mal à trouver comment mettre des bloc des fenetre dans la fenetre principale. je veux deux bloc qui vont contenir d'autres et un troisième pour du texte, et je veux pouvoir gerer leur dimension et qui s'adapte avec la fenetre principale si elle change de taille. quequ'un aurait des idées svp?
merci

Hors ligne

#2 Le 02/05/2008, à 13:45

thibaultg

Re : wxPthon et des fenetre multiples

Par bloc de fenêtre, du parle de fenêtre interne?

# -*- coding: iso-8859-15 -*-
#!/usr/bin/env python
import wx

#----------------------------------------------------------------------

ID_Menu_New       = 5007
ID_Menu_Exit        = 5006

ID_WINDOW_TOP       = 5000
ID_WINDOW_LEFT1     = 5001
ID_WINDOW_LEFT2     = 5002
ID_WINDOW_BOTTOM    = 5005

#----------------------------------------------------------------------

class MyParentFrame(wx.MDIParentFrame):
    def __init__(self):
        wx.MDIParentFrame.__init__(self, None, -1, "Explorer NetCDF", size=(600, 400), style = wx.DEFAULT_FRAME_STYLE | wx.HSCROLL | wx.VSCROLL)

        ###definition du menu###
        menu = wx.Menu()
        menu.Append(ID_Menu_New, "Nouvelle fenetre interne\tCTRL+n")  
        menu.Append(ID_Menu_Exit, "Exit\tCTRL+w")

        menubar = wx.MenuBar()
        menubar.Append(menu, "Frame")
        self.SetMenuBar(menubar)
        

        ###action lié au menu###
        self.Bind(wx.EVT_MENU, self.OnNewWindow, id=ID_Menu_New)
        self.Bind(wx.EVT_MENU, self.OnExit, id=ID_Menu_Exit)

        ###action pour le redimensionne des fenetre###
        self.Bind(wx.EVT_SASH_DRAGGED_RANGE, self.OnSashDrag, id=ID_WINDOW_TOP, id2=ID_WINDOW_BOTTOM)
        self.Bind(wx.EVT_SIZE, self.OnSize)

     ###cré la fenetre interne###
    def OnNewWindow(self, evt):
        win = wx.MDIChildFrame(self, -1, "Child Window: %d")
        win.Show(True)

     ###autre action###
    def OnSize(self, event):
        wx.LayoutAlgorithm().LayoutMDIFrame(self)

    def OnSashDrag(self, event):
        if event.GetDragStatus() == wx.SASH_STATUS_OUT_OF_RANGE:
            return

        eID = event.GetId()

        if eID == ID_WINDOW_TOP:
            self.topWindow.SetDefaultSize((1000, event.GetDragRect().height))

        elif eID == ID_WINDOW_LEFT1:
            self.leftWindow1.SetDefaultSize((event.GetDragRect().width, 1000))

        elif eID == ID_WINDOW_LEFT2:
            self.leftWindow2.SetDefaultSize((event.GetDragRect().width, 1000))

        elif eID == ID_WINDOW_BOTTOM:
            self.bottomWindow.SetDefaultSize((1000, event.GetDragRect().height))

        wx.LayoutAlgorithm().LayoutMDIFrame(self)
        self.GetClientWindow().Refresh()


    def OnExit(self, evt):
        self.Close(True)

if __name__ == '__main__':
    class MyApp(wx.App):
        def OnInit(self):
            wx.InitAllImageHandlers()
            frame = MyParentFrame()
            frame.Show(True)
            self.SetTopWindow(frame)
            return True

    app = MyApp(False)
    app.MainLoop()

Dernière modification par thibaultg (Le 02/05/2008, à 13:46)

Hors ligne

#3 Le 02/05/2008, à 16:59

Abdou-g

Re : wxPthon et des fenetre multiples

merci mais c'est pas ça ce que je voudrais, désolé de ne pas bien m'exprimer.
voilà une capture d'ecran d'un application similaire
[img]file:///media/WD%20Passport/Documents/TELECOM%20BRETAGNE/S2/Projet%20D%C3%A9veloppement/image.png[/img]

Hors ligne

#4 Le 02/05/2008, à 17:01

Abdou-g

Re : wxPthon et des fenetre multiples

oups:(, comment faire pour insérer une image ici?

Hors ligne

#5 Le 02/05/2008, à 17:38

Abdou-g

Re : wxPthon et des fenetre multiples

http://www.developpez.net/forums/attach … 1209744235
j'ai mis la meme discussion sur un autre forum pour pouvoir mettre l'image
voilà

Hors ligne

#6 Le 12/05/2008, à 21:19

thibaultg

Re : wxPthon et des fenetre multiples

Oki j'avais compris de travers; il faut que tu utiliser des panels que tu vas organiser avec des sizer un exemple http://www.developpez.net/forums/showthread.php?t=84512

Hors ligne