-
Notifications
You must be signed in to change notification settings - Fork 0
/
sec-Fixed.html
150 lines (148 loc) · 6.55 KB
/
sec-Fixed.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
<!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>10.3. Le conteneur Place (Fixed)</title>
<link rel="stylesheet" href="pygtktutfr.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
<link rel="start" href="index.html" title="Tutoriel PyGTK 2.0">
<link rel="up" href="ch-ContainerWidgets.html" title="Chapitre 10. Les widgets conteneurs">
<link rel="prev" href="sec-Alignment.html" title="10.2. Le widget d'alignement (Alignment)">
<link rel="next" href="sec-Layout.html" title="10.4. Le conteneur Layout (Affiche)">
<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">10.3. Le conteneur Place (Fixed)</th></tr>
<tr>
<td width="20%" align="left">
<a accesskey="p" href="sec-Alignment.html">Préc.</a> </td>
<th width="60%" align="center">Chapitre 10. Les widgets conteneurs</th>
<td width="20%" align="right"> <a accesskey="n" href="sec-Layout.html">Suiv.</a>
</td>
</tr>
</table>
<hr>
</div>
<div class="sect1" lang="fr">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="sec-Fixed"></a>10.3. Le conteneur Place (Fixed)</h2></div></div></div>
<p>Le conteneur <code class="classname">Place</code>
(<code class="classname">Fixed</code>) permet de disposer des widgets dans sa
fenêtre, à une position précise, par rapport au coin supérieur gauche.
Cette position peut être modifiée de manière dynamique.</p>
<p>Il existe seulement trois appels associés
au conteneur <code class="classname">Fixed</code></p>
<pre class="programlisting">
conteneur_place = gtk.Fixed()
conteneur_place.put(<strong class="parameter"><code>widget</code></strong>, <strong class="parameter"><code>x</code></strong>, <strong class="parameter"><code>y</code></strong>)
conteneur_place.move(<strong class="parameter"><code>widget</code></strong>, <strong class="parameter"><code>x</code></strong>, <strong class="parameter"><code>y</code></strong>)
</pre>
<p>La fonction <code class="function">gtk.Fixed</code>() crée un nouveau
conteneur <code class="classname">Fixed</code>.</p>
<p>La méthode <code class="methodname">put</code>() insère le widget dans
le conteneur <code class="classname">Fixed</code> à la position indiquée par les paramètres
<em class="parameter"><code>x</code></em> et <em class="parameter"><code>y</code></em>.</p>
<p>La méthode <code class="methodname">move</code>() permet au widget indiqué
d'être déplacé dans une nouvelle position.</p>
<p>Le programme <a href="exemples/fixed.py" target="_top">
<span><strong class="command">fixed.py</strong></span></a> illustre l'utilisation du
conteneur <code class="classname">Fixed</code>. La
<a href="sec-Fixed.html#fixedfig" title="Figure 10.2. Exemple de conteneur Fixed">Figure 10.2, « Exemple de conteneur Fixed »</a>montre le résultat.</p>
<div class="figure">
<a name="fixedfig"></a><p class="title"><b>Figure 10.2. Exemple de conteneur Fixed</b></p>
<div class="mediaobject" align="center"><img src="figures/fixed.png" align="middle" alt="Exemple de conteneur Fixed"></div>
<span>Exemple de conteneur Fixed</span>
</div>
<p>Voici le code du programme <a href="examples/fixed.py" target="_top"><span><strong class="command">fixed.py</strong></span></a> :</p>
<pre class="programlisting">
1 #!/usr/bin/env python
2 # -*- coding:utf-8 -*-
3 # exemple fixed.py
4
5 import pygtk
6 pygtk.require('2.0')
7 import gtk
8
9 class ExemplePlace:
10 # Cette méthode de rappel déplace le bouton dans
11 # le conteneur place vers une nouvelle position
12 def deplace_bouton(self, widget):
13 self.x = (self.x+30)%300
14 self.y = (self.y+50)%300
15 self.place.move(widget, self.x, self.y)
16
17 def __init__(self):
18 self.x = 50
19 self.y = 50
20
21 # On crée une nouvelle fenêtre
22 fenetre = gtk.Window(gtk.WINDOW_TOPLEVEL)
23 fenetre.set_title("Conteneur Fixed")
24
25 # On connecte l'évènement "destroy" au gestionnaire de signal
26 fenetre.connect("destroy", lambda w: gtk.main_quit())
27
28 # On indique la largeur des bordures de la fenêtre
29 fenetre.set_border_width(10)
30
31 # On crée le conteneur Fixed (place)
32 self.place = gtk.Fixed()
33 fenetre.add(self.place)
34 self.place.show()
35
36 for i in range(1, 4):
37 # On crée un bouton avec un label "Appuyez !"
38 bouton = gtk.Button("Appuyez !")
39
40 # Lorsque le bouton reçoit le signal "clicked",
41 # il appelle la méthode deplace_bouton().
42 bouton.connect("clicked", self.deplace_bouton)
43
44 # Ceci place le bouton dans la fenêtre du conteneur
45 self.place.put(bouton, i*50, i*50)
46
47 # La dernière tâche est d'afficher ce nouveau bouton.
48 bouton.show()
49
50 # On affiche la fenêtre
51 fenetre.show()
52
53 def main():
54 # Boucle principale
55 gtk.main()
56 return 0
57
58 if __name__ == "__main__":
59 ExemplePlace()
60 main()
</pre>
</div>
<div class="navfooter">
<hr>
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left">
<a accesskey="p" href="sec-Alignment.html">Préc.</a> </td>
<td width="20%" align="center"><a accesskey="u" href="ch-ContainerWidgets.html">Chapitre parent</a></td>
<td width="40%" align="right"> <a accesskey="n" href="sec-Layout.html">Suiv.</a>
</td>
</tr>
<tr>
<td width="40%" align="left" valign="top">10.2. Le widget d'alignement (Alignment) </td>
<td width="20%" align="center"><a accesskey="h" href="index.html">Sommaire</a></td>
<td width="40%" align="right" valign="top"> 10.4. Le conteneur Layout (Affiche)</td>
</tr>
</table>
</div>
</body>
</html>