-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsec-Frames.html
161 lines (161 loc) · 7.09 KB
/
sec-Frames.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
<!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.5. Les cadres (Frame)</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-Layout.html" title="10.4. Le conteneur Layout (Affiche)">
<link rel="next" href="sec-AspectFrames.html" title="10.6. Les cadres proportionnels (AspectFrame)">
<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.5. Les cadres (Frame)</th></tr>
<tr>
<td width="20%" align="left">
<a accesskey="p" href="sec-Layout.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-AspectFrames.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-Frames"></a>10.5. Les cadres (Frame)</h2></div></div></div>
<p>Les cadres sont utilisés pour englober un ou plusieurs groupes de
widgets dans une boîte qui peut, éventuellement, avoir une étiquette.
La position de l'étiquette et le style de la boîte sont modifiables.</p>
<p>A <code class="classname">Frame</code> can be created with the following
function:
Un cadre <code class="classname">Frame</code> se crée en utilisant :</p>
<pre class="programlisting">
cadre = gtk.Frame(<strong class="parameter"><code>label</code></strong>=None)
</pre>
<p>... où l'étiquette <em class="parameter"><code>label</code></em> est placée,
par défaut, dans le coin supérieur gauche du cadre. Donner la valeur
"None" au paramètre <em class="parameter"><code>label</code></em> ou ne pas indiquer de
paramètre <em class="parameter"><code>label</code></em> entraînera qu'aucune étiquette
ne sera affichée. Le texte de l'étiquette est modifiable par :</p>
<pre class="programlisting">
cadre.set_label(<strong class="parameter"><code>label</code></strong>)
</pre>
<p>Pour modifier la position de l'étiquette, on utilise la méthode :</p>
<pre class="programlisting">
cadre.set_label_align(<strong class="parameter"><code>xalign</code></strong>, <strong class="parameter"><code>yalign</code></strong>)
</pre>
<p>...où <em class="parameter"><code>xalign</code></em> et <em class="parameter"><code>yalign</code></em>
ont une valeur comprise entre 0.0 et 1.0. L'argument
<em class="parameter"><code>xalign</code></em> donne la position de l'étiquette sur le
bord horizontal du cadre. Le paramètre <em class="parameter"><code>yalign</code></em>
n'est pas utilisé actuellement. La valeur par défaut de
<em class="parameter"><code>xalign</code></em> est 0.0, ce qui place l'étiquette
sur le coté gauche du cadre.</p>
<p>La méthode suivante modifie le style de la boîte
qui délimite le cadre.</p>
<pre class="programlisting">
cadre.set_shadow_type(<strong class="parameter"><code>type</code></strong>)
</pre>
<p>... où le paramètre <em class="parameter"><code>type</code></em> peur prendre l'un des
valeurs suivantes :</p>
<pre class="programlisting">
SHADOW_NONE
SHADOW_IN
SHADOW_OUT
SHADOW_ETCHED_IN # par défaut
SHADOW_ETCHED_OUT
</pre>
<p>Le programme <a href="exemples/frame.py" target="_top"><span><strong class="command">frame.py</strong></span>
</a> montre l'utilisation du widget de cadre <code class="classname">Frame</code>.
La <a href="sec-Frames.html#framefig" title="Figure 10.4. Exemple de cadre">Figure 10.4, « Exemple de cadre »</a> illustre le résultat obtenu :
</p>
<div class="figure">
<a name="framefig"></a><p class="title"><b>Figure 10.4. Exemple de cadre</b></p>
<div class="mediaobject" align="center"><img src="figures/frame.png" align="middle" alt="Exemple de cadre"></div>
<span>Exemple de cadre</span>
</div>
<p>Voici le code du programme<a href="exemples/frame.py" target="_top">
<span><strong class="command">frame.py</strong></span></a></p>
<pre class="programlisting">
1 #!/usr/bin/env python
2 # -*- coding:utf-8 -*-
3 # exemple frame.py
4
5 import pygtk
6 pygtk.require('2.0')
7 import gtk
8
9 class ExempleCadre:
10 def __init__(self):
11 # Créer une nouvelle fenêtre
12 fenetre = gtk.Window(gtk.WINDOW_TOPLEVEL)
13 fenetre.set_title("Exemple de cadre")
14
15 # On connecte l'évènement "destroy" au gestionnaire de signal
16 fenetre.connect("destroy", lambda w: gtk.main_quit())
17 fenetre.set_size_request(300, 300)
18
19 # On définit la largeur de bordure de la fenêtre
20 fenetre.set_border_width(10)
21
22 # On crée un cadre
23 cadre = gtk.Frame()
24 fenetre.add(cadre)
25
26 # On indique l'étiquette du cadre
27 cadre.set_label("Widget GTK Cadre")
28
29 # On aligne l'étiquette sur la droite du cadre
30 cadre.set_label_align(1.0, 0.0)
31
32 # On précise le style du cadre
33 cadre.set_shadow_type(gtk.SHADOW_ETCHED_OUT)
34 cadre.show()
35
36 # On affiche la fenêtre
37 fenetre.show()
38
39 def main():
40 # Enter the event loop
41 gtk.main()
42 return 0
43
44 if __name__ == "__main__":
45 ExempleCadre()
46 main()
</pre>
<p>Les programmes <a href="exemples/calendar.py" target="_top"><span><strong class="command">calendar.py</strong></span></a>, <a href="exemples/label.py" target="_top"><span><strong class="command">label.py</strong></span></a> et <a href="exemples/spinbutton.py" target="_top"><span><strong class="command">spinbutton.py</strong></span></a>
utilisent aussi des cadres.</p>
</div>
<div class="navfooter">
<hr>
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left">
<a accesskey="p" href="sec-Layout.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-AspectFrames.html">Suiv.</a>
</td>
</tr>
<tr>
<td width="40%" align="left" valign="top">10.4. Le conteneur Layout (Affiche) </td>
<td width="20%" align="center"><a accesskey="h" href="index.html">Sommaire</a></td>
<td width="40%" align="right" valign="top"> 10.6. Les cadres proportionnels (AspectFrame)</td>
</tr>
</table>
</div>
</body>
</html>