-
Notifications
You must be signed in to change notification settings - Fork 0
/
ch-DrawingArea.html
463 lines (458 loc) · 22.4 KB
/
ch-DrawingArea.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
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
<!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 12. La zone de dessin (Drawing Area)</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="sec-ItemFactoryExample.html" title="11.4. Item Factory Example">
<link rel="next" href="sec-DrawingMethods.html" title="12.2. Les méthodes pour dessiner">
<meta name="keywords" content="python,pygtk,tutoriel,traduction, drawing area">
<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 12. La zone de dessin (Drawing Area)</th></tr>
<tr>
<td width="20%" align="left">
<a accesskey="p" href="sec-ItemFactoryExample.html">Préc.</a> </td>
<th width="60%" align="center"> </th>
<td width="20%" align="right"> <a accesskey="n" href="sec-DrawingMethods.html">Suiv.</a>
</td>
</tr>
</table>
<hr>
</div>
<div class="chapter" lang="fr">
<div class="titlepage"><div><div><h2 class="title">
<a name="ch-DrawingArea"></a>Chapitre 12. La zone de dessin (Drawing Area)</h2></div></div></div>
<div class="toc">
<p><b>Table des matières</b></p>
<dl>
<dt><span class="sect1"><a href="ch-DrawingArea.html#sec-GraphicsContext">12.1. Le contexte graphique</a></span></dt>
<dt><span class="sect1"><a href="sec-DrawingMethods.html">12.2. Les méthodes pour dessiner</a></span></dt>
</dl>
</div>
<p>La zone de dessin <code class="classname">DrawingArea</code> adapte une
<code class="classname">gtk.gdk.Window</code>, laquelle est une sous-classe de
<code class="classname">gtk.gdk.Drawable</code> (de même que
<code class="classname">gtk.gdk.Pixmap</code>). En effet, la
<code class="classname">DrawingArea</code> fournit un simple "canevas" (la
<code class="classname">gtk.gdk.Window</code> adaptée) sur laquelle on peut
dessiner en utilisant les méthodes de la classe <code class="classname">gtk.gdk.Drawable</code>.
</p>
<p>On crée une <code class="classname">DrawingArea</code> en utilisant le constructeur :</p>
<pre class="programlisting">
zone_dessin = gtk.DrawingArea()
</pre>
<p>Une <code class="classname">DrawingArea</code> est créée au départ avec une
taille de (0, 0) donc pour rendre visible la <em class="parameter"><code>zone_dessin</code></em>,
il faut préciser sa largeur et sa hauteur avec des valeurs supérieures à zéro
en utilisant la méthode suivante : </p>
<pre class="programlisting">
zone_dessin.set_size_request(<strong class="parameter"><code>largeur</code></strong>, <strong class="parameter"><code>hauteur</code></strong>)
</pre>
<p>Pour dessiner sur une <code class="classname">DrawingArea</code>, il faut
récupérer la <code class="classname">gtk.gdk.Window</code> en utilisant l'attribut
<em class="parameter"><code>window</code></em> de la zone de dessin de cette
manière :
</p>
<pre class="programlisting">
dessinable = drawing_area.window
</pre>
<p>Ensuite, il est possible de dessiner sur le
<em class="parameter"><code>dessinable</code></em> en utilisant la méthode
<code class="classname">gtk.gdk.Drawable</code> décrite dans la
<a href="sec-DrawingMethods.html" title="12.2. Les méthodes pour dessiner">Section 12.2, « Les méthodes pour dessiner »</a>.</p>
<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Note</h3>
<p>Pour posséder une <code class="classname">gtk.gdk.Window</code> associée
pouvant être utilisée pour le dessin, le widget
<code class="classname">DrawingArea</code> doit être "réalisé"
(on a utilisé la méthode <code class="methodname">realize</code>()).</p>
</div>
<div class="sect1" lang="fr">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="sec-GraphicsContext"></a>12.1. Le contexte graphique</h2></div></div></div>
<p>Il existe un grand nombre de méthodes pour dessiner sur la
<code class="classname">gtk.gdk.Window</code> d'une <code class="classname">zone de dessin
</code>. Toutes ces méthodes exigent un contexte graphique
(<code class="classname">gtk.gdk.GC</code>) pour encapsuler l'information nécessaire au dessin sous forme d'attributs.
Un <code class="classname">gtk.gdk.GC</code> dispose des attributs suivants :</p>
<pre class="programlisting">
background # fond
cap_style # style de fin de ligne
clip_mask # masque de découpe
clip_x_origin # origine x de la découpe
clip_y_origin # origine y de la découpe
fill # remplissage
font # police
foreground # couleur de premier plan
function # fonction
graphics_exposures # exposition graphique
join_style # style de jointure de lignes
line_style # style de ligne
line_width # largeur de ligne
stipple # style de pointillé
sub_window # sous-fenêtre
tile # mosaïque
ts_x_origin # origine x
ts_y_origin # origine y
</pre>
<p><em class="parameter"><code>background</code></em> définit la <code class="classname">gtk.gdk.Color</code>
utilisée comme couleur de fond.</p>
<p><em class="parameter"><code>foreground</code></em> définit la <code class="classname">gtk.gdk.Color</code>
utilisée comme couleur de premier-plan.</p>
<p>Une <code class="classname">gtk.gdk.Color</code> est une couleur qui peut
être allouée ou non allouée. Une couleur non allouée peut être créée avec le
constructeur :</p>
<pre class="programlisting">
couleur = gtk.gdk.Color(<strong class="parameter"><code>red</code></strong>=0, <strong class="parameter"><code>green</code></strong>=0, <strong class="parameter"><code>blue</code></strong>=0, <strong class="parameter"><code>pixel</code></strong>=0)
</pre>
<p>... où les paramètres <em class="parameter"><code>red</code></em>, <em class="parameter"><code>green</code></em>
et <em class="parameter"><code>blue</code></em> sont des entiers compris entre 0 et 65535.
Le paramètre <em class="parameter"><code>pixel</code></em> n'est pas souvent défini car
il est réécrit lorsque la couleur est allouée.</p>
<p>Une <code class="classname">gtk.gdk.Color</code> non allouée peut
aussi être créée par la fonction :</p>
<pre class="programlisting">
couleur = gtk.gdk.color_parse(<strong class="parameter"><code>spec</code></strong>)
</pre>
<p>... où <em class="parameter"><code>spec</code></em> est une chaîne de spécification de couleur
qui peut être :</p>
<div class="itemizedlist"><ul type="disc">
<li>un nom de couleur (par exemple "red", "orange", "navajo white" tels
qu'ils sont définis dans le fichier X Window <code class="filename">rgb.txt</code>), oo</li>
<li>une chaîne hexadécimale débutant par '#' et contenant trois groupes
des chiffres hexa de même longueur ((1, 2, 3 or 4 chiffres). Par exemple,
"#F0A", "#FF00AA", "#FFF000AAA" and "#FFFF0000AAAA" qui représentent tous
la même couleur.</li>
</ul></div>
<p>Pour créer une <code class="classname">gtk.gdk.Color</code> représentant
une couleur allouée, on utilise la méthode <code class="methodname">alloc_color</code>()
de <code class="classname">gtk.gdk.Colormap</code> qui possède trois variantes :
</p>
<pre class="programlisting">
couleur = colormap.alloc_color(<strong class="parameter"><code>color</code></strong>, <strong class="parameter"><code>writeable</code></strong>=FALSE, <strong class="parameter"><code>best_match</code></strong>=TRUE)
couleur = colormap.alloc_color(<strong class="parameter"><code>spec</code></strong>, <strong class="parameter"><code>writeable</code></strong>=FALSE, <strong class="parameter"><code>best_match</code></strong>=TRUE)
couleur = colormap.alloc_color(<strong class="parameter"><code>red</code></strong>, <strong class="parameter"><code>green</code></strong>, <strong class="parameter"><code>blue</code></strong>, <strong class="parameter"><code>writeable</code></strong>=FALSE, <strong class="parameter"><code>best_match</code></strong>=TRUE)
</pre>
<p>Le paramètre <em class="parameter"><code>couleur</code></em> est un <code class="classname">gtk.gdk.Color</code>
non alloué, <em class="parameter"><code>spec</code></em> est une chaîne de spécification de couleur
comme on l'a vu précèdemment dans la fonction <code class="function">gtk.gdk.color_parse</code>().
Les paramètres <em class="parameter"><code>red</code></em>, <em class="parameter"><code>green</code></em> et
<em class="parameter"><code>blue</code></em> sont des valeurs entières de couleur décrites dans la
fonction constructeur <code class="function">gtk.gdk.Color</code>(). On peut aussi indiquer
si la couleur allouée peut être modifiable (cad, peut être modifiée plus tard mais
ne peut pas être partagée) ou si une meilleure approximation avec des couleurs existantes
peut se faire lorsque la couleur exacte n'est pas disponible.
</p>
<p>Par exemple:</p>
<pre class="programlisting">
navajowhite = colormap.alloc('navajo white')
cyan = colormap.alloc(0, 65535, 65535)
red = colormap.alloc_color('#FF0000', True, True)
</pre>
<p>On peut connaître la palette de couleurs associée à un widget par la
méthode :</p>
<pre class="programlisting">
palette = widget.get_colormap()
</pre>
<p><em class="parameter"><code>cap_style</code></em> précise le style de
fin de ligne utilisé pour une ligne qui se termine sans rejoindre une autre.
Les différents styles disponibles sont :</p>
<div class="informaltable"><table width="100%" border="1">
<colgroup>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td><code class="literal">CAP_NOT_LAST</code></td>
<td>dessine la même fin de ligne que <code class="literal">CAP_BUTT</code> pour
des lignes de largeur non nulle. Pour des lignes de largeur nulle, le point final
de la ligne n'est pas dessiné.</td>
</tr>
<tr>
<td><code class="literal">CAP_BUTT</code></td>
<td>la fin de ligne est carrée et étendue jusqu'aux coordonées du
point final.</td>
</tr>
<tr>
<td><code class="literal">CAP_ROUND</code></td>
<td>la fin de ligne est arrondie (demi-cercle d'un diamétre égal à
l'épaisseur de la ligne) et centrée sur le point final.</td>
</tr>
<tr>
<td><code class="literal">CAP_PROJECTING</code></td>
<td>la fin de ligne est carrée et étendue de la moitié de l'épaisseur
de la ligne après le point final.</td>
</tr>
</tbody>
</table></div>
<p><em class="parameter"><code>clip_mask</code></em> définit un
<code class="classname">gtk.gdk.Pixmap</code> utilisé pour découper le dessin de la
zone de dessin <em class="parameter"><code>drawing_area</code></em>.</p>
<p><em class="parameter"><code>clip_x_origin</code></em> et
<em class="parameter"><code>clip_y_origin</code></em> précise pour le découpage, l'origine
en x et y par rapport au coin supérieur gauche de la <em class="parameter"><code>zone de dessin</code></em>
</p>
<p><em class="parameter"><code>fill</code></em> précise le style de remplissage
utilisé dans le dessin. Les styles disponibles sont :</p>
<div class="informaltable"><table width="100%" border="1">
<colgroup>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td><code class="literal">SOLID</code></td>
<td>dessine avec la couleur de premier plan.</td>
</tr>
<tr>
<td><code class="literal">TILED</code></td>
<td>dessine avec un dessin en mosaïque.</td>
</tr>
<tr>
<td><code class="literal">STIPPLED</code></td>
<td>dessine avec un patron de pointillé.
Les pixels définis qui correspondent aux bits dans le patron seront dessinés
dans la couleur de premier plan ; les pixels non définis qui correspondent
aux bits dans le patron seront laissés intacts.</td>
</tr>
<tr>
<td><code class="literal">OPAQUE_STIPPLED</code></td>
<td>dessine avec un patron de pointillé. Les pixels correspondants aux bits.
Les pixels définis qui correspondent aux bits dans le patron seront dessinés
dans la couleur de premier plan ; les pixels non définis qui correspondent
aux bits dans le patron seront dessinés dans la couleur d'arrière-plan (de fond).</td>
</tr>
</tbody>
</table></div>
<p><em class="parameter"><code>font</code></em> est un <code class="classname">gtk.gdk.Font</code>
qui est la police utilisée par défaut pour le texte du dessin.</p>
<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Note</h3>
<p>L'utilisation de l'attribut <em class="parameter"><code>font</code></em> est abandonnée.</p>
</div>
<p><em class="parameter"><code>function</code></em> précise comment les
valeurs de bit pour les pixels source sont combinées avec les valeurs de bit
pour les pixels de destination pour produire les bits de pixels résultat.
Les seize valeurs suivantes correspondent aux 16 différentes possibilités
d'une table de vérité 2x2 mais deux ou trois de ces valeurs seulement
sont réellement utiles. Pour les images en couleur, seul COPY, XOR et INVERT
sont généralement utiles alors que pour les bitmaps AND et OR sont aussi utilisés.
Voici les valeurs possibles de <em class="parameter"><code>function</code></em> :</p>
<pre class="programlisting">
COPY # copie
INVERT # inverser
XOR # OU exclusif
CLEAR # nettoyer
AND # ET
AND_REVERSE
AND_INVERT # ET inversé
NOOP # nul
OR # OU
EQUIV # équivalent
OR_REVERSE
COPY_INVERT # copie inversée
OR_INVERT # OU inversé
NAND # non ET
SET # afficher ?
</pre>
<p><em class="parameter"><code>graphics_exposures</code></em> indique si
l'affichage graphique est autorisé (<code class="literal">TRUE</code>) ou
interdit (<code class="literal">FALSE</code>). Lorsque <em class="parameter"><code>graphics_exposures</code></em>
vaut <code class="literal">TRUE</code>, l'échec de copie d'un pixel dans une action de dessin
génère un évènement expose. Si la copie réussit, un évènement
noexpose est généré.</p>
<p><em class="parameter"><code>join_style</code></em> indique le style de
croisement entre deux lignes. Les styles diponibles sont :</p>
<div class="informaltable"><table width="100%" border="1">
<colgroup>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td><code class="literal">JOIN_MITER</code></td>
<td>Les cotés de chaque ligne sont prolongés pour se rencontrer en
formant un angle.</td>
</tr>
<tr>
<td><code class="literal">JOIN_ROUND</code></td>
<td>Les cotés des deux lignes se rejoignent en formant un arrondi.</td>
</tr>
<tr>
<td><code class="literal">JOIN_BEVEL</code></td>
<td>Les cotés des deux lignes sont joints par un segment formant
un angle égal
avec chaque ligne.</td>
</tr>
</tbody>
</table></div>
<p><em class="parameter"><code>line_style</code></em> indique le style de traçage
d'une ligne. Les possibilités sont :</p>
<div class="informaltable"><table width="100%" border="1">
<colgroup>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td><code class="literal">LINE_SOLID</code></td>
<td>les lignes sont tracées en continu.</td>
</tr>
<tr>
<td><code class="literal">LINE_ON_OFF_DASH</code></td>
<td>les segments pairs sont dessinés, pas les segment impairs
(ligne discontinue).</td>
</tr>
<tr>
<td><code class="literal">LINE_DOUBLE_DASH</code></td>
<td>les segments pairs sont dessinés normalement. Les segment impairs
sont dessinés dans la couleur de fond si le style de remplissage est
<code class="literal">SOLID</code>, dans la couleur de fond avec le masque
de pointillé si le style est <code class="literal">STIPPLED</code>.</td>
</tr>
</tbody>
</table></div>
<p><em class="parameter"><code>line_width</code></em> indique l'épaisseur de la ligne.</p>
<p><em class="parameter"><code>stipple</code></em> indique le
<code class="classname">gtk.gdk.Pixmap</code> utilisé pour un dessin en pointillé quand le
paramètre <em class="parameter"><code>fill</code></em> vaut <code class="literal">STIPPLED</code> ou
<code class="literal">OPAQUE_STIPPLED</code>.</p>
<p><em class="parameter"><code>sub_window</code></em> indique le mode de dessin dans
une <code class="classname">gtk.gdk.Window</code> qui possède des enfants
<code class="classname">gtk.gdk.Window</code>. Les valeurs possibles pour
<em class="parameter"><code>sub_window</code></em> sont :</p>
<div class="informaltable"><table width="100%" border="1">
<colgroup>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td><code class="literal">CLIP_BY_CHILDREN</code></td>
<td>dessine seulement dans la fenêtre elle-même, pas dans ses fenêtres enfants.</td>
</tr>
<tr>
<td><code class="literal">INCLUDE_INFERIORS</code></td>
<td>dessine dans la fenêtre et dans ses fenêtres enfants.</td>
</tr>
</tbody>
</table></div>
<p><em class="parameter"><code>tile</code></em> indique le
<code class="classname">gtk.gdk.Pixmap</code> utilisé pour dessiner en mosaïque
lorsque le paramètre <em class="parameter"><code>fill</code></em> vaut
<code class="literal">TILED</code>.</p>
<p><em class="parameter"><code>ts_x_origin</code></em> et
<em class="parameter"><code>ts_y_origin</code></em> indiquent l'origine de la mosaïque
ou du pointillé (la position de départ du bitmap).</p>
<p>Un nouveau contexte graphique est créé par un appel
à la méthode <code class="methodname">gtk.gdk.Drawable.new_gc</code>() :</p>
<pre class="programlisting">
contexte_graph = drawable.new_gc(<strong class="parameter"><code>foreground</code></strong>=None, <strong class="parameter"><code>background</code></strong>=None, <strong class="parameter"><code>font</code></strong>=None,
<strong class="parameter"><code>function</code></strong>=-1, <strong class="parameter"><code>fill</code></strong>=-1, <strong class="parameter"><code>tile</code></strong>=None,
<strong class="parameter"><code>stipple</code></strong>=None, <strong class="parameter"><code>clip_mask</code></strong>=None, <strong class="parameter"><code>subwindow_mode</code></strong>=-1,
<strong class="parameter"><code>ts_x_origin</code></strong>=-1, <strong class="parameter"><code>ts_y_origin</code></strong>=-1, <strong class="parameter"><code>clip_x_origin</code></strong>=-1,
<strong class="parameter"><code>clip_y_origin</code></strong>=-1, <strong class="parameter"><code>graphics_exposures</code></strong>=-1,
<strong class="parameter"><code>line_width</code></strong>=-1, <strong class="parameter"><code>line_style</code></strong>=-1, <strong class="parameter"><code>cap_style</code></strong>=-1
<strong class="parameter"><code>join_style</code></strong>=-1)
</pre>
<p>Pour pouvoir créer un nouveau contexte graphique avec cette méthode,
le drawable doit être :</p>
<div class="itemizedlist"><ul type="disc">
<li><p>une <code class="classname">gtk.gdk.Window</code> qui a été réalisée (créée), ou</p></li>
<li><p>un <code class="classname">gtk.gdk.Pixmap</code> associé à une
<code class="classname">gtk.gdk.Window</code> réalisée.</p></li>
</ul></div>
<p>Les différents attributs du contexte graphique possédent des
valeurs par défaut lorsqu'elles ne sont pas précisées dans la méthode
<code class="methodname">new_gc</code>(). Lorsque l'on souhaite définir des
attributs du contexte graphique par la méthode
<code class="methodname">new_gc</code>(), il est plus facile d'utiliser les
arguments par mots-clés de Python.</p>
<p>On peut aussi définir les attributs individuels d'un
<code class="classname">gtk.gdk.GC</code> en assignant une valeur aux attributs de l'objet
GC. Par exemple</p>
<pre class="programlisting">
gc.cap_style = CAP_BUTT
gc.line_width = 10
gc.fill = SOLD
gc.foreground = macouleur
</pre>
<p>ou en utilisant les méthodes suivantes :</p>
<pre class="programlisting">
gc.set_foreground(color)
gc.set_background(color)
gc.set_function(function)
gc.set_fill(fill)
gc.set_tile(tile)
gc.set_stipple(stipple)
gc.set_ts_origin(x, y)
gc.set_clip_origin(x, y)
gc.set_clip_mask(mask)
gc.set_clip_rectangle(rectangle)
gc.set_subwindow(mode)
gc.set_exposures(exposures)
gc.set_line_attributes(line_width, line_style, cap_style, join_style)
</pre>
<p>Le patron de segments utilisé lorsque le paramètre de style de ligne
<em class="parameter"><code>line_style</code></em> est <code class="literal">LINE_ON_OFF_DASH</code>
ou <code class="literal">LINE_DOUBLE_DASH</code> peut être défini par la méthode
suivante :</p>
<pre class="programlisting">
gc.set_dashes(offset, dash_list)
</pre>
<p>... où le paramètre <em class="parameter"><code>offset</code></em> est la position de la
valeur du segment initial dans la <em class="parameter"><code>dash_list</code></em> et
<em class="parameter"><code>dash_list</code></em> est une liste de tuples contenant
le nombre de pixels à dessiner ou sauter pour réaliser les segments.
Les segments sont dessinés en démarrant avec le nombre de pixels indiqué à la position de
décalage (offset) ; ensuite le nombre suivant est le nombre de pixels sautés ;
le nombre suivant est le nombre de pixels dessinés, et ainsi de suite, parcourant
tous les nombres de la <em class="parameter"><code>dash_list</code></em> en recommençant au début
quand on arrive à la fin de la liste. Par exemple, si la <em class="parameter"><code>dash_list</code></em>
se compose de (2, 4, 8, 16) avec un décalage (offset) de 1, les segments sont dessinés
ainsi : dessin sur 4 pixels, saut de 8 pixels, dessin sur 16 pixels, saut de 2 pixels,
dessin sur 4 pixels etc.
</p>
<p>On peut réaliser une copie d'un <code class="classname">gtk.gdk.GC</code>
existant par la méthode :</p>
<pre class="programlisting">
gc.copy(<strong class="parameter"><code>src_gc</code></strong>)
</pre>
<p>Les attributs du paramètre <em class="parameter"><code>gc</code></em> sont identiques
à ceux du source <em class="parameter"><code>src_gc</code></em>.</p>
</div>
</div>
<div class="navfooter">
<hr>
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left">
<a accesskey="p" href="sec-ItemFactoryExample.html">Préc.</a> </td>
<td width="20%" align="center"> </td>
<td width="40%" align="right"> <a accesskey="n" href="sec-DrawingMethods.html">Suiv.</a>
</td>
</tr>
<tr>
<td width="40%" align="left" valign="top">11.4. Item Factory Example </td>
<td width="20%" align="center"><a accesskey="h" href="index.html">Sommaire</a></td>
<td width="40%" align="right" valign="top"> 12.2. Les méthodes pour dessiner</td>
</tr>
</table>
</div>
</body>
</html>