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


Tk quick start

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

Source code: Visual Tcl version (file tk_spinbox.py, needs also tk_spinbox.tcl)
01: #!/usr/bin/python
02: # .+
03: #
04: # .identifier : $Id:$
05: # .context    : Application View Controller
06: # .title      : A spin control replicated into a text label (Tk)
07: # .kind       : python source
08: # .author     : Fabrizio Pollastri
09: # .site       : Revello - Italy
10: # .creation   : 30-May-2007
11: # .copyright  : (c) 2007 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: from Tkinter import *                   # Tk interface
33:
34: from avc import *                       # AVC
35:
36: TCL_FILE = 'tk_spinbox.tcl'             # GUI description as tcl script
37:
38:
39: class Example(AVC):
40:   """
41:   A spin box whose value is replicated into a label
42:   """
43:
44:   def __init__(self):
45:
46:
47:
48:     # create GUI
49:     self.root = Tk()
50:     self.root.eval('set argc {}; set argv {}; proc ::main {argc argv} {};')
51:     self.root.tk.evalfile(TCL_FILE)
52:
53:     # terminate program at toplevel window destroy: connect toplevel
54:     # destroy signal to termination handler.
55:     self.root.bind_class('Toplevel','<Destroy>',lambda event: self.root.quit())
56:
57:     # the variable holding the spin control value
58:     self.spin_value = 0
59:
60:
61: #### MAIN
62:
63: example = Example()                     # instantiate the application
64: example.avc_init()                      # connect widgets with variables
65: mainloop()                              # run Tk event loop until quit
66:
67: #### END
68: 
Source code: programmatic version (file tk_spinbox_progui.py)
01: #!/usr/bin/python
02: # .+
03: #
04: # .identifier : $Id:$
05: # .context    : Application View Controller
06: # .title      : A spin control replicated into a text label (Tk)
07: # .kind       : python source
08: # .author     : Fabrizio Pollastri
09: # .site       : Revello - Italy
10: # .creation   : 1-Jun-2007
11: # .copyright  : (c) 2007 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: from Tkinter import *                   # Tk interface
33:
34: from avc import *                       # AVC for Tk
35:
36:
37: class Example(AVC):
38:   """
39:   A spin box whose value is replicated into a label
40:   """
41:
42:   def __init__(self):
43:
44:     ## create GUI
45:
46:     # main window
47:     self.root = Tk()
48:     self.root.title('AVC Tk spin box example')
49:     self.frame = Frame(self.root,name='frame')
50:     self.frame.pack()
51:
52:     # label replicating the spin box value
53:     self.label = Label(self.frame,name='spin_value__label',width=16,height=3)
54:     self.label.pack(side=LEFT)
55:
56:     # spin box
57:     self.spinbox = Spinbox(self.frame,name='spin_value__spinbox',
58:       increment=1.0,to=100)
59:     self.spinbox.pack(side=RIGHT)
60:
61:
62:     # the variable holding the spin control value
63:     self.spin_value = 0
64:
65:
66: #### MAIN
67:
68: example = Example()                     # instantiate the application
69: example.avc_init()                      # connect widgets with variables
70: mainloop()                              # run Tk event loop until quit
71:
72: #### END
73: