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 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<link rel="STYLESHEET" href="howto.css" type='text/css' />
<link rel="first" href="howto.html" title='Developing applications with Kiwi' />
<link rel='last' href='about.html' title='About this document...' />
<link rel='help' href='about.html' title='About this document...' />
<link rel="next" href="node3.html" />
<link rel="prev" href="node1.html" />
<link rel="parent" href="node1.html" />
<link rel="next" href="node3.html" />
<meta name='aesop' content='information' />
<title>1.1 Introduction</title>
</head>
<body>
<DIV CLASS="navigation">
<div id='top-navigation-panel' xml:id='top-navigation-panel'>
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td class='online-navigation'><a rel="prev" title="1 Kiwi: An Overview"
href="node1.html"><img src='previous.png'
border='0' height='32' alt='Previous Page' width='32' /></A></td>
<td class='online-navigation'><a rel="parent" title="1 Kiwi: An Overview"
href="node1.html"><img src='up.png'
border='0' height='32' alt='Up One Level' width='32' /></A></td>
<td class='online-navigation'><a rel="next" title="1.2 Why Use Kiwi?"
href="node3.html"><img src='next.png'
border='0' height='32' alt='Next Page' width='32' /></A></td>
<td align="center" width="100%">Developing applications with Kiwi</td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="node1.html">1 Kiwi: An Overview</A>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="node1.html">1 Kiwi: An Overview</A>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="node3.html">1.2 Why Use Kiwi?</A>
</div>
<hr /></div>
</DIV>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION000110000000000000000">
1.1 Introduction</A>
</H2>
For many platforms, graphical applications are developed based on an
application framework that is provided by the platform. For Java we have
Swing (and AWT); for Windows we have MFC (and a number of others). In
general, these frameworks include a set of widgets that are used
natively.
<P>
James Henstridge's
<em class="citetitle"><a
href="http://www.pygtk.org/"
title="PyGTK"
>PyGTK</a></em>, an excellent
set of <em class="citetitle"><a
href="http://www.gtk.org/"
title="GTK+"
>GTK+</a></em> bindings for
<em class="citetitle"><a
href="http://www.python.org/"
title="Python"
>Python</a></em>, supports graphical programs
written in Python, but it offers only a set of widgets, not a framework;
you have to do all the work of organizing your application yourself.
<B>Kiwi wraps PyGTK to offer both a framework to organize your
application, and a set of enhanced widgets</B> that can be used either from
the framework or directly in your application. You can use as much or as
little of it as you like.
<P>
A framework (in the object-oriented programming sense) is a set of
general purpose classes that work together to provide a base upon which
an application is built. Kiwi is a white-box framework; to use this type
of framework, you inherit and customize one or more classes, instantiate
them, and run it. In Kiwi, a high-level class that controls a window,
for instance, is called <tt class="class">BaseView</tt>, and it provides a method
called <tt class="function">show_and_loop()</tt> that renders it and starts the event
processing upon which all GTK+ (and therefore Kiwi) applications are
based. The Kiwi framework includes a number of classes that can be
adapted to your specific needs, and they are described further in the
next section.
<P>
Kiwi is based on the real-world experience of using Python and GTK+
(through PyGTK) to develop a fairly large application,
<em class="citetitle"><a
href="http://www.stoq.com.br/"
title="Stoq"
>Stoq</a></em>, which uses many concepts
common to most graphical applications: multiple windows and dialogs,
forms, data persistence, lists and high-level classes that support
domain objects directly.
<P>
<DIV CLASS="navigation">
<div class='online-navigation'>
<p></p><hr />
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td class='online-navigation'><a rel="prev" title="1 Kiwi: An Overview"
href="node1.html"><img src='previous.png'
border='0' height='32' alt='Previous Page' width='32' /></A></td>
<td class='online-navigation'><a rel="parent" title="1 Kiwi: An Overview"
href="node1.html"><img src='up.png'
border='0' height='32' alt='Up One Level' width='32' /></A></td>
<td class='online-navigation'><a rel="next" title="1.2 Why Use Kiwi?"
href="node3.html"><img src='next.png'
border='0' height='32' alt='Next Page' width='32' /></A></td>
<td align="center" width="100%">Developing applications with Kiwi</td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="node1.html">1 Kiwi: An Overview</A>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="node1.html">1 Kiwi: An Overview</A>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="node3.html">1.2 Why Use Kiwi?</A>
</div>
</div>
<hr />
<span class="release-info">Release 1.9.22, documentation updated on August, 2006.</span>
</DIV>
<!--End of Navigation Panel-->
</BODY>
</HTML>
|