Logo
AVC, Application View Controller

OUTLINE

Current: 0.8.3

Released: 15-Feb-2011

License: GPL

Common Requirements:
python 2.2 - <3.0

GTK+ requirements:
Pygtk 2.8 - 2.10
Qt requirements:
Pyqt v3 - v4
Tk requirements:
Tkinter 2.4
wxWidgets requirements:
wxPython 2.6 - 2.8
Swing requirements:
jython 2.5.1

Author: Fabrizio Pollastri

DOCUMENTATION

Quick start examples:
GTK+, Qt3, Qt4, Tk,
wxWidgets, Swing.
User Manual

Release Notes

Changelog

All News

ARTICLES

AVC-Simplifying your GUI Code

SCREENSHOTS

GTK+ examples

Qt3 examples

Qt4 examples

Tk examples

wxWidgets examples

Swing examples

DOWNLOAD

Source:
- current avc-0.8.3.tar.gz
all sources

Packages:
Arch Linux
Debian
Ubuntu

Quick start examples:
GTK+ spinbutton + glade file
Qt3 spinbox + ui file
Qt4 spinbox + ui file
Tk spinbox + tcl file
wxWidgets spincontrol + xrc file
Swing spinner

All examples


GTK+ quick start

This is the GTK+ spin button example included in AVC distribution. It comes into two versions. The first has the GUI generated from a Glade UI description. The second has the GUI generated directly by program instructions. For full details see the "GTK+ examples" chapter of the user manual.

Source code: Glade version (file gtk_spinbutton.py, needs also gtk_spinbutton.glade)
01: #!/usr/bin/python
02: # .+
03: #
04: # .identifier : $Id:$
05: # .context    : Application View Controller
06: # .title      : A spin button replicated into a label (GTK)
07: # .kind       : python source
08: # .author     : Fabrizio Pollastri
09: # .site       : Revello - Italy
10: # .creation   : 7-Dec-2006
11: # .copyright  : (c) 2006 Fabrizio Pollastri.
12: # .license    : GNU General Public License (see below)
13: #
14: # This file is part of "AVC, Application View Controller".
15: #
16: # AVC is free software; you can redistribute it and/or modify
17: # it under the terms of the GNU General Public License as published by
18: # the Free Software Foundation; either version 3 of the License, or
19: # (at your option) any later version.
20: #
21: # AVC is distributed in the hope that it will be useful,
22: # but WITHOUT ANY WARRANTY; without even the implied warranty of
23: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
24: # GNU General Public License for more details.
25: #
26: # You should have received a copy of the GNU General Public License
27: # along with this program.  If not, see <http://www.gnu.org/licenses/>.
28: #
29: # .-
30:
31:
32: import gtk                              # gimp tool kit bindings
33: import gtk.glade                        # glade bindings
34:
35: from avc import *                       # AVC
36:
37: GLADE_XML = 'gtk_spinbutton.glade'      # GUI glade descriptor
38:
39:
40: class Example(AVC):
41:   """
42:   A spin button whose value is replicated into a label
43:   """
44:
45:   def __init__(self):
46:
47:     # create GUI
48:     self.glade = gtk.glade.XML(GLADE_XML)
49:
50:     # the variable holding the spin button value
51:     self.spin_value = 0
52:
53:     # autoconnect GUI signal handlers
54:     self.glade.signal_autoconnect(self)
55:
56:
57:   def on_destroy(self,window):
58:     "Terminate program at window destroy"
59:     gtk.main_quit()
60:
61:
62: #### MAIN
63:
64: example = Example()                     # instantiate the application
65: example.avc_init()                      # connect widgets with variables
66: gtk.main()                              # run GTK event loop until quit
67:
68: #### END
69: 
Source code: programmatic version (file gtk_spinbutton_progui.py)
01: #!/usr/bin/python
02: # .+
03: #
04: # .identifier : $Id:$
05: # .context    : Application View Controller
06: # .title      : A spin button replicated into a label (GTK)
07: # .kind       : python source
08: # .author     : Fabrizio Pollastri
09: # .site       : Revello - Italy
10: # .creation   : 6-Jan-2008
11: # .copyright  : (c) 2008 Fabrizio Pollastri.
12: # .license    : GNU General Public License (see below)
13: #
14: # This file is part of "AVC, Application View Controller".
15: #
16: # AVC is free software; you can redistribute it and/or modify
17: # it under the terms of the GNU General Public License as published by
18: # the Free Software Foundation; either version 3 of the License, or
19: # (at your option) any later version.
20: #
21: # AVC is distributed in the hope that it will be useful,
22: # but WITHOUT ANY WARRANTY; without even the implied warranty of
23: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
24: # GNU General Public License for more details.
25: #
26: # You should have received a copy of the GNU General Public License
27: # along with this program.  If not, see <http://www.gnu.org/licenses/>.
28: #
29: # .-
30:
31:
32: import gtk                              # gimp tool kit bindings
33:
34: from avc import *                       # AVC
35:
36:
37: class Example(AVC):
38:   """
39:   A spin button whose value is replicated into a label
40:   """
41:
42:   def __init__(self):
43:
44:     ## create GUI
45:
46:     # main window
47:     window = gtk.Window()
48:     window.set_title('AVC GTK spin button example')
49:     window.resize(310,50)
50:     window.connect('destroy',gtk.main_quit)
51:
52:     # horizontal layout for widgets inside main window
53:     hbox = gtk.HBox()
54:     window.add(hbox)
55:
56:     # label replicating the spin button value with formatting string
57:     label = gtk.Label()
58:     label.set_name('spin_value__label')
59:     label.set_markup('<b>%d</b>')
60:     hbox.add(label)
61:
62:     # spin button
63:     spinbutton = gtk.SpinButton(gtk.Adjustment(0,0,100,1,5,0))
64:     spinbutton.set_name('spin_value__spinbutton')
65:     hbox.add(spinbutton)
66:
67:     # show all widgets
68:     window.show_all()
69:
70:
71:     # the variable holding the spin button value
72:     self.spin_value = 0
73:
74:
75: #### MAIN
76:
77: example = Example()                     # instantiate the application
78: example.avc_init()                      # connect widgets with variables
79: gtk.main()                              # run GTK event loop until quit
80:
81: #### END
82: