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

wxPython Discussion :

Problème wx.Frame et maximize


Sujet :

wxPython

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 11
    Par défaut Problème wx.Frame et maximize
    Bonjour,

    J'ai un soucis avec une frame maximisée. Elle est définie avec ces arguments :

    (None, mytitle,wx.DisplaySize())

    Ensuite, je la maximise :

    A l'intérieur, j'ai du gridbagsizer, et tout fonctionnait bien jusqu'à ce que j'ajoute "trop" de cellules : les cellules les plus basses sortent de l'écran.

    Du coup, la fenêtre se redimentionne et n'est plus maximisée.

    Ma question est donc : comment faire pour que ma frame reste maximisée et me présente une barre de défilement sur la droite, pour pouvoir accéder à toutes les cellules ?

    Merci !

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 045
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 045
    Par défaut
    On peut voir l'initialisation de ta frame?

    Je pense qu'il faut travailler sur le paramètre style --> wx.MAXIMIZE_BOX

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 11
    Par défaut
    Citation Envoyé par fred1599 Voir le message
    On peut voir l'initialisation de ta frame?

    Je pense qu'il faut travailler sur le paramètre style --> wx.MAXIMIZE_BOX
    Hello, voici ma déclaration :

    Dans mon fichier main :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    frame1=mygui.myguiFrame(None, mytitle,wx.DisplaySize())
    Dans mon fichier qui gère la GUI:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class myguiFrame(wx.Frame):
    	def __init__(self,parent,title,size):
    		wx.Frame.__init__(self,parent,title=title, size=size,style=wx.DEFAULT_FRAME_STYLE)
     
    		self.CreateStatusBar()
     
    		self.myFrameMenuBar()
     
    		self.makemygrid()
     
    		self.Show(True)
    J'ai essayé sans succès de remplacer mon wx.DEFAULT_FRAME_STYLE par un wx.MAXIMIZE_BOX ... Pas mieux.

    Une idée du problème ?

    Merci ! :-)

  4. #4
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 11
    Par défaut
    Code testé sur une autre config, avec un écran plus grand : cela confirme que mon soucis intervient uniquement lorsque j'atteint le bas de l'écran avec mes cellules de gridbagsizer.

    L'idéal serait vraiment de pouvoir mettre une barre de défilement à droite en fait, qui me permettrait d'avoir autant de cellules que je souhaite.

    J'ai testé en rajoutant tout de suite après ma déclaration de frame :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.scroll=wx.ScrolledWindow(self,-1)
    Ca modifie l'aspect, il manque plein de cellules et je ne vois pas de barre de défilement.

    Une idée ?

    Merci d'avance :-)

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 11
    Par défaut
    Problème résolu, en fait il fallait créer un panel pour la scrollbar et binder le contenu dessus.

    Un code complet d'exemple qui a résolu 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
     
    import wx
    from wx.lib.scrolledpanel import ScrolledPanel
     
    class MyGuiFrame(wx.Frame):
       def __init__(self, parent, title, size):
          wx.Frame.__init__(self, parent, title=title, size=size,style= wx.DEFAULT_FRAME_STYLE)
          self.CreateStatusBar()
          self.create_scrolled_panel()
          self.Layout()
          self.panel.SetupScrolling()
          self.Show(True)
     
       def create_scrolled_panel(self):
          sizer= wx.BoxSizer(wx.VERTICAL)
          self.SetSizer(sizer)
          self.panel= ScrolledPanel(self)
          sizer.Add(self.panel, 1, wx.EXPAND)
          panel_sizer= wx.BoxSizer(wx.VERTICAL)
          self.panel.SetSizer(panel_sizer)
          self.make_my_grid(panel_sizer)
     
       def make_my_grid(self,p_sizer):
          self.sizer = wx.GridBagSizer(5,5)
          p_sizer.Add(self.sizer, 1, wx.EXPAND|wx.ALL, 5)
          self.sizer.SetEmptyCellSize((0,0))
     
          self.test1 = wx.TextCtrl(self.panel,-1,value=u"test 1")
          self.sizer.Add(self.test1,(1,0),(1,3),wx.CENTER|wx.EXPAND)
          self.test2 = wx.TextCtrl(self.panel,-1,value=u"test 2")
          self.sizer.Add(self.test2,(2,0),(1,3),wx.CENTER|wx.EXPAND)
          self.test3 = wx.TextCtrl(self.panel,-1,value=u"test 3")
          self.sizer.Add(self.test3,(3,0),(1,3),wx.CENTER|wx.EXPAND)
          self.test4 = wx.TextCtrl(self.panel,-1,value=u"test 4")
          self.sizer.Add(self.test4,(4,0),(1,3),wx.CENTER|wx.EXPAND)
          self.test5 = wx.TextCtrl(self.panel,-1,value=u"test 5")
          self.sizer.Add(self.test5,(5,0),(1,3),wx.CENTER|wx.EXPAND)
          self.test6 = wx.TextCtrl(self.panel,-1,value=u"test 6")
          self.sizer.Add(self.test6,(6,0),(1,3),wx.CENTER|wx.EXPAND)
          self.test7 = wx.TextCtrl(self.panel,-1,value=u"test 7")
          self.sizer.Add(self.test7,(7,0),(1,3),wx.CENTER|wx.EXPAND)
          self.test8 = wx.TextCtrl(self.panel,-1,value=u"test 8")
          self.sizer.Add(self.test8,(8,0),(1,3),wx.CENTER|wx.EXPAND)
          self.test9 = wx.TextCtrl(self.panel,-1,value=u"test 9")
          self.sizer.Add(self.test9,(9,0),(1,3),wx.CENTER|wx.EXPAND)
          self.test10 = wx.TextCtrl(self.panel,-1,value=u"test 10")
          self.sizer.Add(self.test10,(10,0),(1,3),wx.CENTER|wx.EXPAND)
          self.test11 = wx.TextCtrl(self.panel,-1,value=u"test 11")
          self.sizer.Add(self.test11,(11,0),(1,3),wx.CENTER|wx.EXPAND)
          self.test12 = wx.TextCtrl(self.panel,-1,value=u"test 12")
          self.sizer.Add(self.test12,(12,0),(1,3),wx.CENTER|wx.EXPAND)
          self.test13 = wx.TextCtrl(self.panel,-1,value=u"test 13")
          self.sizer.Add(self.test13,(13,0),(1,3),wx.CENTER|wx.EXPAND)
          self.test14 = wx.TextCtrl(self.panel,-1,value=u"test 14")
          self.sizer.Add(self.test14,(14,0),(1,3),wx.CENTER|wx.EXPAND)
          self.test15 = wx.TextCtrl(self.panel,-1,value=u"test 15")
          self.sizer.Add(self.test15,(15,0),(1,3),wx.CENTER|wx.EXPAND)
          self.test16 = wx.TextCtrl(self.panel,-1,value=u"test 16")
          self.sizer.Add(self.test16,(16,0),(1,3),wx.CENTER|wx.EXPAND)
          self.test17 = wx.TextCtrl(self.panel,-1,value=u"test 17")
          self.sizer.Add(self.test17,(17,0),(1,3),wx.CENTER|wx.EXPAND)
     
          self.sizer.AddGrowableCol(0)
          self.sizer.AddGrowableCol(1)
          self.sizer.AddGrowableCol(2)
          self.sizer.AddGrowableCol(3)
          self.sizer.AddGrowableCol(4)
     
     
    wx_app= wx.App(False)
    my_title= "my frame"
    frame1= MyGuiFrame(None, my_title, wx.DisplaySize())
    frame1.Maximize()
     
    wx_app.MainLoop()

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

Discussions similaires

  1. Problème référencement frame
    Par wwave dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 09/03/2006, 11h44
  2. [Physique] Balle rebondissant sur un plan,problème de frames
    Par oxyde356 dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 16/02/2006, 18h11
  3. Problème de frames
    Par eizo dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 24/01/2006, 17h54
  4. Problèmes de frames
    Par xender dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 28/11/2005, 11h57
  5. Problème de frames
    Par Pymm dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/08/2005, 12h40

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