Building a Doubletalk Browser with wxPython
Okay, now let’s
build something that’s actually useful and learn more about the
wxPython
framework along the way. As has been
shown with the other GUI toolkits, we’ll build a small
application around the Doubletalk class library that allows browsing
and editing of transactions.
MDI Frame
We’re going to implement a Multiple
Document Interface, where the child frames are different views of the
transactional data, rather than separate “documents.”
Just as with previous samples, the first thing to do is create an
application class and have it create a main frame in its
OnInit
method:
class DoubleTalkBrowserApp(wxApp): def OnInit(self): frame = MainFrame(NULL) frame.Show(true) self.SetTopWindow(frame) return true app = DoubleTalkBrowserApp(0) app.MainLoop()
Since we are using MDI, there is a special class to use for the frame’s base class. Here is the code for the initialization method of the main application frame:
class MainFrame(wxMDIParentFrame): title = "Doubletalk Browser - wxPython Edition" def __init__(self, parent): wxMDIParentFrame.__init__(self, parent, -1, self.title) self.bookset = None self.views = [] if wxPlatform == '__WXMSW__': self.icon = wxIcon('chart7.ico', wxBITMAP_TYPE_ICO) self.SetIcon(self.icon) # create a statusbar that shows the time and date on the right sb = self.CreateStatusBar(2) sb.SetStatusWidths([-1, 150]) self.timer = wxPyTimer(self.Notify) self.timer.Start(1000) self.Notify() menu = self.MakeMenu(false) self.SetMenuBar(menu) ...
Get Python Programming On Win32 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.