wxPython - PLEASE Help

DP pennedinil at excite.com
Tue Dec 24 04:17:16 EST 2002


In advance, many thanks for any help on this. I'm stumped, mainly
because I just don't know enough.

I can't seem to get the panel to display in the frame (see code
below). What am I doing wrong? I've been at this too long now...


# -----------------------------------------------------
from wxPython.wx import *
# -----------------------------------------------------
def ruSure(parent):
    ru = wxMessageDialog(parent, "Are you sure you want to quit?",
           "Leaving Application", \
           wxOK | wxCANCEL | wxICON_QUESTION)
    return ru.ShowModal()
# -----------------------------------------------------
class baseCopyPane(wxPanel):
    def __init__(self, parent, id, Info, sourceDir,
                 pos = wxDefaultPosition,
                 size = wxDefaultSize,
                 style = wxTAB_TRAVERSAL,
                 cbTT = "Select Individually",
                 loadTT = "Copy files",
                 backTT = "Backup files",
                 ):
        wxPanel.__init__(self, parent, id)
        hbox = wxBoxSizer(wxHORIZONTAL)
        self.cbID = NewId()
        self.cb = wxCheckBox(self, self.cbID, "x", wxPoint(-1, -1), \
            wxSize(-1, -1), style = wxSUNKEN_BORDER)
        self.loadID = NewId()
        self.load = wxButton(self, self.loadID, "Load",
wxPoint(150,90), \
            wxSize(50,20))
        self.backID = NewId()
        self.back = wxButton(self, self.backID, "Back-up",
wxPoint(150,90), \
            wxSize(50,20))
        self.textID = NewId()
        self.text = wxStaticText(self, self.textID, Info)
        hbox.Add(0, 0, 1, wxEXPAND)
        hbox.Add(self.load, 0, wxALIGN_CENTER)
        hbox.Add(self.back, 0, wxALIGN_CENTER)
        hbox.Add(self.cb, 0, wxALIGN_CENTER)
        hbox.Add(self.text, 0, wxEXPAND)
        self.SetAutoLayout(true)
        self.SetSizer(hbox)
        self.SetAutoLayout(true)
        self.Centre(direction = wxBOTH)
# -----------------------------------------------------
class testframe(wxFrame):
    def __init__(self, parent, id, title):
        # initialize frame geometry & position
        wxFrame.__init__(self, parent, id, title, 
            size = (600, 200), 
            style = wxSYSTEM_MENU | wxMINIMIZE_BOX | wxRESIZE_BORDER |
wxCAPTION)
        # Add a panel to place things in
        self.panel = baseCopyPane(self, -1, "a", "b")
        EVT_CLOSE(self, self.OnCloseWindow)
        box = wxBoxSizer(wxVERTICAL)
        box.Add(self.panel, 1, wxEXPAND)
        self.SendSizeEvent()
        self.SetAutoLayout(true)
        self.Centre(direction = wxBOTH)
    def OnCloseWindow(self, event):
        if ruSure(self) == wxID_OK:
            self.Destroy()
    def exitApp(self, event):
        if ruSure(self) == wxID_OK:
            self.Close()
# -----------------------------------------------------
class TestApp(wxApp):
    def OnInit(self):
        frame = testframe(NULL, -1, "Test Frame")
        frame.Show(true)
        self.SetTopWindow(frame)
        return true
# -----------------------------------------------------
if __name__ == "__main__":
    app = TestApp(0)
    app.MainLoop()



More information about the Python-list mailing list