Home Accessibility Courses Twitter The Mouth Facebook Resources Site Map About Us Contact
 
Python and Tcl - public course schedule [here]
Private courses on your site - see [here]
Please ask about maintenance training for Perl, PHP, Lua, etc
 
Principles or a GUI and their practical application using wxPthon

From today's training - a private course that was brief Python revision followed by an introduction to GUIs (in the form of wxPython ...

I started with a generic intordcution to GUIs ... written in the form of a source code file in Python:

  # principles of a GUI
  #
  # Provides a "Framework" and "Helpers"
  #
  # (somewhere here - load / initialse model)
  # 1. Define components ("widgets")
  # 2. Define a geometry ("layout")
  # 3. Define my events
  #
  # BEFORE you
  #
  # (4. Display initial view)
  # 5. Await an event
  # 6. Process that event
  # 7. go to step 5


and then I went on to add real code into each of the sections. Here is the implementation for each step:

# Provides a "Framework" and "Helpers"
  import wx

# load / initialse model
  import mymodel

# Create an empty shell for the various els.
  app = wx.PySimpleApp()
  class RailStationApp(wx.Frame):
    def __init__(this):
      wx.Frame.__init__(this, None,wx.ID_ANY,"About rail places", (600,200))


# 1. Define components ("widgets")
  this.myWoof = wx.Button(this,1,"Gypsy")
  this.myYap = wx.Button(this,2,"Billy")


# 2. Define a geometry ("layout")
  this.geom = wx.BoxSizer(wx.VERTICAL)
  this.geom.Add(this.myWoof)
  this.geom.Add(this.myYap)
  this.SetSizer(this.geom)
  this.SetAutoLayout(1)
  this.geom.Fit(this)


# 3. Define my events
  this.Bind(wx.EVT_BUTTON,this.feed,this.myWoof)
  this.Bind(wx.EVT_BUTTON,this.walk,this.myYap)
  def feed(this,event): print "We are out of Bonios"
  def walk(this,event): print "Peeing down with rain"


# 4. Display initial view
  this.Show(True)

# 5. Await an event
# 6. Process that event
# 7. go to step 5
  app.MainLoop()

There's a few more wrapper and invocation lines - compete template [here] and the full implementation[here].

Having put the rudiments of each step into place, I moved on to ...

Add a label and change event handlers so that feedback appeared within the GUI (see [here].

Add a whole list of data elements and a loop of buttons, with a single event handler working for all of the buttons [here]

And finally switching to use data from my model to load the GUI and present dynamic information [here]

Image - samples of the four application examples

(written 2015-11-30)

 
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
Q910 - Object Orientation and General technical topics - GUI principles
  [4258] Keeping you Tkinter display up to date while monitoring - (2014-04-06)
  [3081] wxPython - simple example to add GUI to a server log file analysis - (2010-12-08)
  [2746] Model - View - Controller demo, Sqlite - Python 3 - Qt4 - (2010-04-29)

Y207 - wxPython
  [3139] Steering our Python courses towards wxPython, SQLite and Django - (2011-01-19)
  [3092] wxPython geometry - BoxSizer example - (2010-12-17)
  [3086] Sizers (geometry control) in a wxPython GUI - a first example - (2010-12-15)
  [2887] Snow Leopard and Python (that is OS X 10.6 and wxPython) - (2010-07-26)
  [2744] PyQt (Python and Qt) and wxPython - GUI comparison - (2010-04-28)
  [2013] wxPython - Introduction and sample - (2009-01-29)
  [903] Pieces of Python - (2006-10-23)


Back to
What teach you in a week stays with you for a decade
Previous and next
or
Horse's mouth home
Forward to
Progress on moving from Python 2 to Python 3 - training for both versions
Some other Articles
Command line parameter handling in Python via the argparse module
A comparison of the public transport alternatives to the Royal United Hospital, Bath - from Melksham.
From single block to structure and object oriented programming
Progress on moving from Python 2 to Python 3 - training for both versions
Principles or a GUI and their practical application using wxPthon
What teach you in a week stays with you for a decade
shell - bash. Writing conditional tests and statements - the options available
Extending your bash shell with aliases, functions and extra commands
What is make? What is gcc?
Bash ... some new scripts to - handling user input
4759 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96 at 50 posts per page


This is a page archived from The Horse's Mouth at http://www.wellho.net/horse/ - the diary and writings of Graham Ellis. Every attempt was made to provide current information at the time the page was written, but things do move forward in our business - new software releases, price changes, new techniques. Please check back via our main site for current courses, prices, versions, etc - any mention of a price in "The Horse's Mouth" cannot be taken as an offer to supply at that price.

Link to Ezine home page (for reading).
Link to Blogging home page (to add comments).

You can Add a comment or ranking to this page

© WELL HOUSE CONSULTANTS LTD., 2019: 404 The Spa • Melksham, Wiltshire • United Kingdom • SN12 6QL
PH: 01225 708225 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho

PAGE: http://www.wellho.net/mouth/4589_Pri ... Pthon.html • PAGE BUILT: Sat May 27 16:49:10 2017 • BUILD SYSTEM: WomanWithCat