-
Notifications
You must be signed in to change notification settings - Fork 0
/
ch-Introduction.html
215 lines (214 loc) · 11.1 KB
/
ch-Introduction.html
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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Chapitre 1. Introduction</title>
<link rel="stylesheet" href="pygtktutfr.css" type="text/css">
<meta name="generator" content="Bluefish 1.0.5">
<link rel="start" href="index.html" title="Tutoriel PyGTK 2.0">
<link rel="up" href="index.html" title="Tutoriel PyGTK 2.0">
<link rel="prev" href="index.html" title="Tutoriel PyGTK 2.0">
<link rel="next" href="ch-GettingStarted.html" title="Chapitre 2. Premiers pas">
<meta name="keywords" content="python,pygtk,tutoriel,traduction">
<link rel="home" href="index.html" title="Table des matières">
</head>
<body>
<div class="localisation">
Vous êtes à peu près ici :
<a href="../../index.html">Accueil</a> »
<a href="../pygtktut.php">tutoriel PyGTK</a> »
<a href="index.html">PyGTK : sommaire</a>
</div>
<!-- fin localisation -->
<div class="navheader">
<table width="100%" summary="Navigation header">
<tr><th colspan="3" align="center">Chapitre 1. Introduction</th></tr>
<tr>
<td width="20%" align="left">
<a accesskey="p" href="index.html">Préc.</a> </td>
<th width="60%" align="center"> </th>
<td width="20%" align="right"> <a accesskey="n" href="ch-GettingStarted.html">Suiv.</a>
</td>
</tr>
</table>
<hr>
</div>
<div class="chapter" lang="fr">
<div class="titlepage"><div><div><h2 class="title">
<a name="ch-Introduction"></a>Chapitre 1. Introduction</h2></div></div></div>
<div class="toc">
<p><b>Table des matières</b></p>
<dl><dt><span class="sect1"><a href="ch-Introduction.html#sec-ExploringPygtk">1.1. Exploring PyGTK</a></span></dt></dl>
</div>
<p>PyGTK 2.0 est un ensemble de modules Python offrant une interface Python à GTK+ 2.0.
Tout au long de ce document, le terme PyGTK fera référence à la version 2.X de PyGTK,
et les termes GTK et GTK+ à la version 2.X de GTK+. Le site web principal de PyGTK
est <a href="http://www.pygtk.org" target="_top">www.pygtk.org</a>. L'auteur principal de
PyGTK est :</p>
<div class="itemizedlist"><ul type="disc"><li>
James Henstridge <a href="mailto:[email protected]" target="_top">[email protected]</a>
</li></ul></div>
<p>lequel est aidé par les développeurs inscrits dans le fichier AUTHORS de la distribution
PyGTK et par la communauté PyGTK.</p>
<p>Python est un langage de programmation interprété, orienté objet et extensible.
Il est doté d'une grande panoplie de modules lui ouvrant l'accès aux services de
nombreux domaines : système d'exploitation, Internet (HTML, XML, FTP, etc.),
librairies graphiques (dont OpenGL, TK, etc.), courrier électronique (IMAP, SMTP, POP3, etc.),
traitement des chaines de caractères, multimédia (audio, JPEG), cryptographie.
On peut ajouter à ces modules de nombreux autres proposés par des tiers et qui augmentent
encore les possibilités du langage. Python est placé sous une licence similaire à la LGPL et
est disponible pour les systèmes d'exploitation Linux, Unix, Windows et Macintosh.
Pour plus d'information, rendez-vous sur www.python.org . L'auteur principal de Python est :
</p>
<div class="itemizedlist"><ul type="disc"><li>
Guido van Rossum <a href="mailto:[email protected]" target="_top">[email protected]</a>
</li></ul></div>
<p>GTK (GIMP Toolkit) est une bibliothèque de création d'interfaces graphiques.
Elle est placée sous licence LGPL, et peut donc être utilisée pour le développement
de logiciels libres, open-source, ou même commerciaux et non libres sans qu'il faille
s'acquitter de quelconques droits d'auteur ou licences.
</p>
<p>Écrite à l'origine pour le développement du logiciel de traitement d'image the GIMP
(GNU Image Manipulation Program) — d'où son nom de GIMP Toolkit (boite à outils de the GIMP) —
GTK a depuis servi dans de nombreux projets logiciels, dont l'environnement de bureau GNOME
(GNU Network Object Model Environment). GTK est bâti au-dessus de GDK (GIMP Drawing Kit),
qui est essentiellement une encapsulation des fonctions de bas niveau permettant d'accéder
au système de fenêtrage (Xlib dans le cas du système X window).
Les auteurs principaux de GTK sont :</p>
<div class="itemizedlist"><ul type="disc">
<li>
Peter Mattis <a href="mailto:[email protected]" target="_top">[email protected]</a>
</li>
<li>
Spencer Kimball <a href="mailto:[email protected]" target="_top">[email protected]</a>
</li>
<li>
Josh MacDonald <a href="mailto:[email protected]" target="_top">[email protected]</a>
</li>
</ul></div>
<p>GTK is currently maintained by:</p>
<div class="itemizedlist"><ul type="disc">
<li>
Owen Taylor <a href="mailto:[email protected]" target="_top">[email protected]</a>
</li>
<li>
Tim Janik <a href="mailto:[email protected]" target="_top">[email protected]</a>
</li>
</ul></div>
<p>GTK est principalement une interface de programmation d'application (API) orientée
objet. Bien qu'écrite intégralement en C, elle est implémentée en utilisant le concept
de classes et de fonctions de rappel (pointeurs sur fonctions).</p>
<p>Un troisième composant, appelé GLib, contient quelques remplacements d'appels
standard, ainsi que des fonctions additionnelles pour gérer les listes chainées, etc.
Les fonctions de remplacement permettent d'accroitre la portabilité de GTK, car une fonction
utilisée par un système Unix n'est pas forcément disponible ou standard sur un autre
(comme <code class="function">g_strerror</code>() par exemple). D'autres comportent des améliorations par
rapport aux versions de la libc : <code class="function">g_malloc</code>, par exemple,
facilite le débogage.</p>
<p>Dans la version 2.0, GLib a intégré le système de typage qui pose les
bases de la hiérarchie de classes de GTK, le système de signaux utilisé
par GTK, une API de thread permettant de faire abstraction de celles utilisées par
les différentes plateformes, et une structure de chargement des modules.</p>
<p>Enfin, GTK utilise la bibliothèque Pango pour l'internationalisation du
texte.</p>
<p>Ce tutoriel décrit l'interface Python de GTK+ et se base sur le Tutoriel
GTK+ 2.0 écrit par Tony Gale et Ian Main. Il cherche à fournir une documentation
aussi large que possible de PyGTK, mais n'est en aucun cas exhaustif.</p>
<p>Quelques connaissances de Python et de la manière de créer et exécuter
des programmes dans ce langage vous seront nécessaires. Si vous ne connaissez
pas bien Python, je vous recommande la lecture du
<a href="http://www.python-fr.org/modules/wfsection/article.php?articleid=1" target="_top">
Tutoriel Python</a>. En revanche,
aucune connaissance préalable de GTK n'est requise ; si vous apprenez PyGTK pour
découvrir GTK, vos appréciations sur ce tutoriel ainsi que vos commentaires sur
les difficultés rencontrées seront les bienvenus. Nous n'aborderons ni la compilation
ni l'installation de Python, GTK+ et PyGTK.</p>
<p>Ce tutoriel est basé sur :</p>
<div class="itemizedlist"><ul type="disc">
<li>GTK+ 2.0 through GTK+ 2.4</li>
<li>Python 2.2</li>
<li>PyGTK 2.0 through PyGTK 2.4</li>
</ul></div>
<p>Les exemples originaux ont été écrits et testés sur une RedHat 9.0. </p>
<p>Ce document est en constant développement. Vérifiez l'existence de mises à jour sur
<a href="http://www.pygtk.org/pygtktutorial" target="_top">www.pygtk.org</a>.</p>
<p>N'hésitez pas à me (l'auteur) faire part des problèmes que vous rencontrez
en apprenant PyGTK avec ce document, ainsi que de vos suggestions pour
l'améliorer. Voyez la section "Contribuer" pour plus d'information.
Si vous découvrez des erreurs, signalez-les sur <a href="http://bugzilla.gnome.org" target="_top">bugzilla.gnome.org</a> à propos du projet pygtk.
L'information à propos de Bugzilla sur le site <a href="http://www.pygtk.org/feedback.html" target="_top">www.pygtk.org</a> peuvent vous aider.
</p>
<p>Le Manuel de référence de PyGTK 2.0 peut être consulté sur
<a href="http://www.pygtk.org/pygtk2reference" target="_top">http://www.pygtk.org/pygtk2reference</a>.
Il décrit en détail les classes PyGTK.</p>
<p>Le site PyGTK (<a href="http://www.pygtk.org" target="_top">www.pygtk.org</a>)
contient des ressources supplémentaires utiles pour apprendre PyGTK, y compris
un lien vers la <a href="http://www.async.com.br/faq/pygtk/" target="_top">FAQ</a>,
d'autres articles et tutoriels ainsi qu'une liste de diffusion active et un
canal IRQ ( voir les détails sur <a href="http://www.pygtk.org/feedback.html" target="_top">
www.pygtk.org</a>).
</p>
<div class="sect1" lang="fr">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="sec-ExploringPygtk"></a>1.1. Exploring PyGTK</h2></div></div></div>
<p>Johan Dahlin est l'auteur d'un petit programme Python pour Linux
(<a href="examples/pygtkconsole.py" target="_top"><span><strong class="command">pygtkconsole.py</strong></span></a>)
qui permet une exploration interactive de PyGTK. Le programme comprend un interpréteur
interactif comme celui de Python, qui communique avec un processus fils chargé d'exécuter
les commandes saisies. Les modules PyGTK sont chargés par défaut. Voici un exemple de session :
</p>
<pre class="screen">
<code class="prompt"> moe: 96:1095$</code> <span><strong class="command">pygtkconsole.py</strong></span>
Python 2.2.2, PyGTK 1.99.14 (Gtk+ 2.0.6)
Interactive console to manipulate GTK+ widgets.
>>> w=Window()
>>> b=Button('Salut')
>>> w.add(b)
>>> def salut(b):
... print "Salut tout le monde !"
...
>>> b.connect('clicked', salut)
5
>>> w.show_all()
>>> Salut tout le monde !
Salut tout le monde !
Salut tout le monde !
>>> b.set_label("Salut toi")
>>>
</pre>
<p>Ceci crée une fenêtre contenant un bouton, lequel affiche le message "Salut tout
le monde !" lorsqu'on le clique. Ce programme permet de tester très facilement différents
widgets GTK et interfaces PyGTK.
</p>
<p>J'utilise aussi un programme développé par Brian McErlean :
<a href="http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109" target="_top">ActiveState
recipe 65109</a> avec quelques modules pour l'adapter à PyGTK 2.X. Je l'appelle
<a href="examples/gpython.py" target="_top"><span><strong class="command">gpython.py</strong></span></a> .
Il fonctionne de la même manière que <a href="examples/pygtkconsole.py" target="_top"><span><strong class="command">
pygtkconsole.py</strong></span></a></p>
<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Note</h3>
<p>Ces deux programmes ne fonctionnent pas avec Microsoft Windows car ils se
basent sur une interface spécifique Unix.</p>
</div>
</div>
</div>
<div class="navfooter">
<hr>
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left">
<a accesskey="p" href="index.html">Préc.</a> </td>
<td width="20%" align="center"> </td>
<td width="40%" align="right"> <a accesskey="n" href="ch-GettingStarted.html">Suiv.</a>
</td>
</tr>
<tr>
<td width="40%" align="left" valign="top">Tutoriel PyGTK 2.0 </td>
<td width="20%" align="center"><a accesskey="h" href="index.html">Table des matières</a></td>
<td width="40%" align="right" valign="top"> Chapitre 2. Premiers pas</td>
</tr>
</table>
</div>
</body>
</html>