Help with wxPython BoxSizers
Levente Sandor
sandorlevi at yahoo.com
Tue Mar 4 15:35:24 EST 2003
You've added twice the button 'b', first to the horizontal, then again
to the vertical sizer.
[...]
hsizer.Add(b) # <---
topsizer.Add(hsizer)
EVT_BUTTON(self, ID_BROWSE, self.on_select_defect)
topsizer.Add(b) # <--- delete this line
[...]
----
levi
tebeka at cs.bgu.ac.il (Miki Tebeka) wrote in message news:<33803989.0303040753.1c47eefc at posting.google.com>...
> Hello All,
>
> Can someone tell me what I'm doing wrong in the following code?
> I'd like to get the [...] button next to the text control and not below it.
>
> 10x.
>
> --- client.py ---
> from wxPython.wx import *
>
> ID_READ_DATA = NewId()
> ID_QUIT = NewId()
> ID_DEFECT = NewId()
> ID_BROWSE = NewId()
>
> FILE_FILTER = 'Defect Files|*.001;*.002;*.003;*.cmp;*.kla'
> RECIPE_NAME = ''
>
> class Client(wxFrame):
> def __init__(self, parent, id):
> wxFrame.__init__(self, parent, id, 'Compass Client')
> topsizer = wxBoxSizer(wxVERTICAL)
> # Top Read Data button
> b = wxButton(self, ID_READ_DATA, 'Read Data')
> EVT_BUTTON(self, ID_READ_DATA, self.on_read_data)
> topsizer.Add(b)
> # Defect file
> #FIXME: Why doesn't layout work?
> topsizer.Add(wxStaticText(self, -1, 'Defect file:'))
> hsizer = wxBoxSizer(wxHORIZONTAL)
> self.defect = \
> wxTextCtrl(self, ID_DEFECT, '', size=(200, -1))
> hsizer.Add(self.defect)
> b = wxButton(self, ID_BROWSE, '...', size=(20, -1))
> hsizer.Add(b)
> topsizer.Add(hsizer)
> EVT_BUTTON(self, ID_BROWSE, self.on_select_defect)
> topsizer.Add(b)
>
> q = wxButton(self, ID_QUIT, 'Quit', wxPoint(0, 70))
> EVT_BUTTON(self, ID_QUIT, lambda e: self.Close(1))
> topsizer.Add(q)
> self.SetSizer(topsizer)
> self.SetAutoLayout(1)
> topsizer.Fit(self)
>
> def on_read_data(self, event):
> print event
>
> def on_select_defect(self, event):
> dlg = wxFileDialog(self, 'Select a Defect File', '', '', FILE_FILTER, \
> wxOPEN)
> if dlg.ShowModal() != wxID_OK:
> return
> self.defect.SetValue(dlg.GetPath())
>
>
> if __name__ == '__main__':
> app = wxPySimpleApp()
> frame = Client(None, -1)
> frame.Show(1)
> app.MainLoop()
>
> --- client.py ---
More information about the Python-list
mailing list