Well, there’s clearly a lot I’m missing here, and wxFormBuilder isn’t helping.
You have a top-level panel as a child of the frame, and wxFormBuilder won’t allow that.
Here’s what I see in wxFormBuilder:
The displayed window looks identical to what wxFormBuilder previews but I can’t add a second image.
The code generated by wxFormBuilder:
# -*- coding: utf-8 -*-
###########################################################################
## Python code generated with wxFormBuilder (version 4.2.1-0-g80c4cb6)
## http://www.wxformbuilder.org/
##
## PLEASE DO *NOT* EDIT THIS FILE!
###########################################################################
import wx
import wx.xrc
import wx.dataview
import gettext
_ = gettext.gettext
###########################################################################
## Class Sample2FrameBase
###########################################################################
class Sample2FrameBase ( wx.Frame ):
def __init__( self, parent ):
wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 571,369 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )
self.SetSizeHints( wx.DefaultSize, wx.DefaultSize )
bSizer1 = wx.BoxSizer( wx.VERTICAL )
bSizer2 = wx.BoxSizer( wx.HORIZONTAL )
self.m_panel2 = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
self.m_panel2.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOW ) )
self.m_panel2.SetBackgroundColour( wx.Colour( 128, 255, 255 ) )
bSizer2.Add( self.m_panel2, 1, wx.EXPAND |wx.ALL, 5 )
bSizer1.Add( bSizer2, 1, wx.EXPAND, 5 )
bSizer3 = wx.BoxSizer( wx.VERTICAL )
self.m_panel3 = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
self.m_panel3.SetBackgroundColour( wx.Colour( 255, 128, 64 ) )
bSizer3.Add( self.m_panel3, 1, wx.EXPAND |wx.ALL, 5 )
bSizer1.Add( bSizer3, 1, wx.EXPAND, 5 )
bSizer4 = wx.BoxSizer( wx.HORIZONTAL )
self.dvRegList = wx.dataview.DataViewListCtrl( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.dataview.DV_ROW_LINES )
self.cRegType = self.dvRegList.AppendTextColumn( _(u"Type"), wx.dataview.DATAVIEW_CELL_ACTIVATABLE, -1, wx.ALIGN_LEFT, wx.dataview.DATAVIEW_COL_RESIZABLE )
self.cWaitList = self.dvRegList.AppendTextColumn( _(u"W"), wx.dataview.DATAVIEW_CELL_INERT, -1, wx.ALIGN_LEFT, wx.dataview.DATAVIEW_COL_RESIZABLE )
self.cRegName = self.dvRegList.AppendTextColumn( _(u"Name"), wx.dataview.DATAVIEW_CELL_INERT, -1, wx.ALIGN_LEFT, wx.dataview.DATAVIEW_COL_RESIZABLE )
bSizer4.Add( self.dvRegList, 1, wx.ALL, 5 )
bSizer1.Add( bSizer4, 3, wx.EXPAND, 5 )
self.SetSizer( bSizer1 )
self.Layout()
self.Centre( wx.BOTH )
def __del__( self ):
pass
And the main program:
import Sample
import wx
class Sample2Frame(Sample.Sample2FrameBase):
def __init__(self, parent):
super(Sample2Frame, self).__init__(parent)
def OnQuit(self, event):
self.Close(True)
app = wx.App()
frm = Sample2Frame(None)
frm.dvRegList.AppendItem(["Type 1", "N", "John Doe"])
frm.dvRegList.AppendItem(["Type 2", "N", "Fred Bloggs"])
frm.dvRegList.AppendItem(["Type 1", "N", "Jane Doe"])
frm.Show()
frm.dvRegList.Refresh()
app.MainLoop()