944,067 Members | Top Members by Rank

Ad:
  • Python Discussion Thread
  • Marked Solved
  • Views: 2884
  • Python RSS
Dec 4th, 2007
0

wxBoxSizer with 2 panels - panel size

Expand Post »
Can anyone point me in the direction of a small app that displays 2 panels on a frame, where one panel is small and at the top taking up about 20% of the frame, and the other panel takes up 80%.

I would like it to be possible using wxBoxSizer but if anyone can show me any other way in wx then that's grand.

LarZ
Reputation Points: 10
Solved Threads: 2
Newbie Poster
LarZ is offline Offline
21 posts
since Nov 2007
Dec 5th, 2007
0

Re: wxBoxSizer with 2 panels - panel size

Here is one example:
python Syntax (Toggle Plain Text)
  1. # put two different size panels into a wxBoxSizer
  2.  
  3. import wx
  4.  
  5. class MyFrame(wx.Frame):
  6. def __init__(self, parent, id, title):
  7. wx.Frame.__init__(self, parent, id, title, size=(250, 70))
  8. panel = wx.Panel(self, -1)
  9. panel1 = wx.Panel(panel, -1, size=(50, 30))
  10. panel1.SetBackgroundColour('blue')
  11. panel2 = wx.Panel(panel, -1, size=(200, 30))
  12. panel2.SetBackgroundColour('green')
  13. box = wx.BoxSizer(wx.VERTICAL)
  14. box.Add(panel1, 1)
  15. box.Add(panel2, 1)
  16. panel.SetSizer(box)
  17. self.Centre()
  18.  
  19. class MyApp(wx.App):
  20. def OnInit(self):
  21. frame = MyFrame(None, -1, 'wxBoxSizer.py')
  22. frame.Show(True)
  23. return True
  24.  
  25. app = MyApp(0)
  26. app.MainLoop()
Last edited by sneekula; Dec 5th, 2007 at 3:40 pm. Reason: size
Reputation Points: 961
Solved Threads: 211
Nearly a Posting Maven
sneekula is offline Offline
2,413 posts
since Oct 2006
Dec 6th, 2007
0

Re: wxBoxSizer with 2 panels - panel size

Thanks a lot, but the panels are still resizing when the frame gets resized, so they're not of a fixed size.

I don't want each panel taking up half of the overall height of the panel/frame in which it is contained. I want at least the top one to stay the same size at all times....

anyone have any ideas?
Reputation Points: 10
Solved Threads: 2
Newbie Poster
LarZ is offline Offline
21 posts
since Nov 2007
Dec 7th, 2007
0

Re: wxBoxSizer with 2 panels - panel size

yeah i decided to ditch the boxsizer, as it has a mind of its own at the best of times... I'm just throwing in the position of the frames and the size as follows:

python Syntax (Toggle Plain Text)
  1. from wxPython.wx import *
  2.  
  3. class APanel(wxPanel):
  4. def __init__(self, parent,size,pos):
  5. wxPanel.__init__(self,parent,-1,size = size,pos = pos)
  6.  
  7. class MainFrame(wxFrame):
  8. def __init__(self, parent, ID, title):
  9. wxFrame.__init__(self, parent, ID, title, size = (500,500))
  10. self.testPanel = self.createTestPanel(self)
  11. self.argsPanel = self.createArgsPanel(self)
  12.  
  13. def createTestPanel(self,parent):
  14. size = wxSize(250, 100)
  15. pos = (0,0)
  16. testPanel = APanel(parent,size,pos)
  17. testPanel.SetBackgroundColour("GRAY")
  18. print "returning panel %s" %testPanel
  19. return testPanel
  20.  
  21. def createArgsPanel(self,parent):
  22. size = wxSize(250, 300)
  23. pos = (0,100)
  24. argsPanel = APanel(parent,size,pos)
  25. argsPanel.SetBackgroundColour("BLUE")
  26. print "returning panel %s" %argsPanel
  27. return argsPanel
  28.  
  29. class MyApp(wxApp):
  30. def OnInit(self):
  31. frame = MainFrame(NULL, -1, "I hate sizers :D")
  32. frame.Show(1)
  33. return true
  34.  
  35. app = MyApp(0)
  36. app.MainLoop()
Last edited by LarZ; Dec 7th, 2007 at 10:20 am. Reason: Better Example
Reputation Points: 10
Solved Threads: 2
Newbie Poster
LarZ is offline Offline
21 posts
since Nov 2007
Dec 7th, 2007
0

Re: wxBoxSizer with 2 panels - panel size

Just replace the 1 with a zero in Add() ...
Python Syntax (Toggle Plain Text)
  1. box.Add(panel1, 0)
  2. box.Add(panel2, 0)
Moderator
Reputation Points: 1333
Solved Threads: 1403
DaniWeb's Hypocrite
vegaseat is offline Offline
5,792 posts
since Oct 2004

This thread is solved

Either the thread starter or a moderator has marked this thread as solved. You can most likely trust the responses and answers given. There is most likely no reason for any further responses to be posted here. If you have a related question, please start a new thread in this forum instead.

This thread is more than three months old

No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.
Message:
Previous Thread in Python Forum Timeline: Python 2.4.4, Segmentation fault
Next Thread in Python Forum Timeline: GUI Python - A Guessing Game





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC