-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsec-ColorButtonAndFontButton.html
227 lines (219 loc) · 11.4 KB
/
sec-ColorButtonAndFontButton.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
<!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>16.3. Bouton de couleur (ColorButton) et de police (FontButton)</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="ch-NewInPyGTK2.4.html" title="Chapitre 16. Nouveaux Widgets dans PyGTK 2.4">
<link rel="prev" href="sec-ComboBoxAndComboboxEntry.html" title="16.2. Les listes déroulantes (ComboBox) et listes déroulantes avec saisie (ComboBoxEntry)">
<link rel="next" href="sec-EntryCompletion.html" title="16.4. Zone de saisie avec complètement (EntryCompletion)">
<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">16.3. Bouton de couleur (ColorButton) et de police (FontButton)</th></tr>
<tr>
<td width="20%" align="left">
<a accesskey="p" href="sec-ComboBoxAndComboboxEntry.html">Préc.</a> </td>
<th width="60%" align="center">Chapitre 16. Nouveaux Widgets dans PyGTK 2.4</th>
<td width="20%" align="right"> <a accesskey="n" href="sec-EntryCompletion.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-ColorButtonAndFontButton"></a>16.3. Bouton de couleur (ColorButton) et de police (FontButton)</h2></div></div></div>
<div class="sect2" lang="fr">
<div class="titlepage"><div><div><h3 class="title">
<a name="sec-ColorButton"></a>16.3.1. Bouton de couleur (ColorButton)</h3></div></div></div>
<p>Un widget <code class="classname">ColorButton</code> fournit une manière commode d'afficher
une couleur dans un bouton que l'on peut cliquer pour ouvrir une fenêtre
<code class="classname">ColorSelectionDialog</code> de choix de couleur. C'est utile pour
afficher et sélectionner des couleurs dans un dialogue de préférence d'utilisateur. Un
<code class="classname">ColorButton</code> se charge d'établir, d'afficher et récupérer le
résultat de la fenêtre de sélection de couleur <code class="classname">ColorSelectionDialog</code>.
On crée un <code class="classname">ColorButton</code> par le constructeur :
</p>
<pre class="programlisting">
colorbutton = gtk.ColorButton(<strong class="parameter"><code>color</code></strong>=gtk.gdk.Color(0,0,0))
</pre>
<p>La couleur de départ peut être précisée par le paramètre
<em class="parameter"><code>color</code></em> ou établie par la suite avec la méthode :
</p>
<pre class="programlisting">
colorbutton.set_color(<strong class="parameter"><code>color</code></strong>)
</pre>
<p>Le titre de la fenêtre <code class="classname">ColorSelectionDialog</code> qui
s'affiche quand on clique sur le bouton peut être fixé et récupéré par
la méthode :
</p>
<pre class="programlisting">
colorbutton.set_title(<strong class="parameter"><code>title</code></strong>)
title = colorbutton.get_title()
</pre>
<p>L'opacité de la couleur est fixée en utilisant le canal alpha.
Les méthodes suivantes récupèrent et fixent l'opacité de la couleur
dans une gamme de 0 (transparent) à 65535 (opaque) :
</p>
<pre class="programlisting">
alpha = colorbutton.get_alpha()
colorbutton.set_alpha(<strong class="parameter"><code>alpha</code></strong>)
</pre>
<p>Par défaut, la valeur alpha est ignorée car la propriété "use_alpha" est
fixée à <code class="literal">FALSE</code>. La valeur de cette propriété "use_alpha"
peut être fixée et récupérée par la méthode :
</p>
<pre class="programlisting">
colorbutton.set_use_alpha(<strong class="parameter"><code>use_alpha</code></strong>)
use_alpha = colorbutton.get_use_alpha()
</pre>
<p>Si "use_alpha" vaut <code class="literal">TRUE</code>, la fenêtre
<code class="classname">ColorSelectionDialog</code> affiche un curseur pour régler
l'opacité et montre la couleur sur un fond à damier.
</p>
<p>On peut surveiller les changements de la couleur choisie en se reliant au
signal "color-set" qui est émis quand l'utilisateur choisit une couleur.
La fonction de rappel du signal est :
</p>
<pre class="programlisting">
def color_set_cb(colorbutton, user_data):
</pre>
<p>Le programme <a href="exemples/colorbutton.py" target="_top">colorbutton.py</a> illustre
l'utilisation du bouton de couleur <code class="classname">ColorButton</code>. La
<a href="sec-ColorButtonAndFontButton.html#colorbuttonfig" title="Figure 16.8. Exemple de bouton de couleur">Figure 16.8, « Exemple de bouton de couleur »</a> montre le programme en cours d'exécution.
</p>
<div class="figure">
<a name="colorbuttonfig"></a><p class="title"><b>Figure 16.8. Exemple de bouton de couleur</b></p>
<div class="mediaobject" align="center"><img src="figures/colorbutton.png" align="middle" alt="Exemple de bouton de couleur."></div>
</div>
<p></p>
</div>
<div class="sect2" lang="fr">
<div class="titlepage"><div><div><h3 class="title">
<a name="sec-FontButton"></a>16.3.2. Bouton de police (FontButton)</h3></div></div></div>
<p>Comme le <code class="classname">ColorButton</code>, le bouton de police
<code class="classname">FontButton</code> est un widget pratique qui fournit un aperçu
de la police actuellement choisie et qui ouvre une fenêtre
<code class="classname">FontSelectionDialog</code>quand on le clique. Un bouton
<code class="classname">FontButton</code> se charge d'établir, d'afficher et récupérer le
résultat de la fenêtre de sélection de police <code class="classname">FontSelectionDialog</code>.
On le crée par le constructeur :
</p>
<pre class="programlisting">
boutonpolice = gtk.FontButton(<strong class="parameter"><code>nompolice</code></strong>=None)
</pre>
<p>... où <em class="parameter"><code>nompolice</code></em> est une chaîne indiquant la police courante
de la fenêtre <code class="classname">FontSelectionDialog</code>. Par exemple,
le nom de la police peut être écrit comme 'Sans 12', 'Sans Bold 14', ou
'Monospace Italic 14'. Il est nécessaire d'indiquer au minimum la famille
et la taille de la police.
</p>
<p>La police en cours peut aussi être fixée et récupérée par les méthodes
suivantes :
</p>
<pre class="programlisting">
resultat = boutonpolice.set_font_name(<strong class="parameter"><code>nompolice</code></strong>)
nompolice = boutonpolice.get_font_name()
</pre>
<p>... où <em class="parameter"><code>resultat</code></em> renvoie <code class="literal">TRUE</code> ou
<code class="literal">FALSE</code> pour indiquer si la prise en compte de la police a été
réalisée avec succès.
Le <code class="classname">FontButton</code> possède un certain nombre de propriétés et
méthodes associées qui agissent sur l'affichage de la police en cours dans le
bouton <code class="classname">FontButton</code>. Les propriétés "show-size" et
"show-style" contiennent des valeurs booléennes qui contrôlent si la taille et
le style seront affichés dans l'étiquette du bouton. Les méthodes suivantes
fixent et récupèrent les valeurs de ces propriétés :
</p>
<pre class="programlisting">
boutonpolice.set_show_style(<strong class="parameter"><code>show_style</code></strong>)
show_style = boutonpolice.get_show_style()
boutonpolice.set_show_size(<strong class="parameter"><code>show_size</code></strong>)
show_size = boutonpolice.get_show_size()
</pre>
<p>Autre manière, vous pouvez utiliser la taille et le style actuellement affichés par
l'étiquette pour illustrer directement le choix de police. Voici les méthodes
associées aux propriétés "use-size" et "use-font" :
</p>
<pre class="programlisting">
boutonpolice.set_use_font(<strong class="parameter"><code>use_font</code></strong>)
use_font = boutonpolice.get_use_font()
boutonpolice.set_use_size(<strong class="parameter"><code>use_size</code></strong>)
use_size = boutonpolice.get_use_size()
</pre>
<p>Employer la police courante sur l'étiquette semble une technique utile
malgré les inévitables changements de taille du bouton mais utiliser la taille
choisie n'apparait pas aussi utile, surtout avec de trés grandes ou trés petites
tailles de police. Il faut noter que si on fixe "use-font" ou "use-size" à
<code class="literal">TRUE</code> pour ensuite les mettre à <code class="literal">FALSE</code>,
les dernières polices et tailles utilisées seront conservées. Par exemple,
si "use-font" et "use-size" ont la valeur <code class="literal">TRUE</code> et que
la police actuelle est <code class="literal">Monospace Italic 20</code>, l'étiquette
du bouton <code class="classname">FontButton</code> s'affiche en
<code class="literal">Monospace Italic 20</code> ; puis si "use-font" et "use-size"
passent à <code class="literal">FALSE</code> et que la police en cours est modifiée
en <code class="literal">Sans 12</code>, l'étiquette s'affichera encore en
<code class="literal">Monospace Italic 20</code>. Employez le programme d'exemple
<a href="exemples/fontbutton.py" target="_top">fontbutton.py</a> pour voir
comment ceci fonctionne.
</p>
<p>Enfin, le titre de la fenêtre <code class="classname">FontSelectionDialog</code>
peut être fixé et récupéré grâce aux méthodes :
</p>
<pre class="programlisting">
boutonpolice.set_title(<strong class="parameter"><code>titre</code></strong>)
titre = boutonpolice.get_title()
</pre>
<p>Comme pour le bouton <code class="classname">ColorButton</code>, on peut surveiller
les changements dans la police en cours en se connectant au signal émis
lorsque l'utilisateur choisit une police. La fonction de rappel du signal
a la forme :
</p>
<pre class="programlisting">
def fct_rappel_choixpolice(boutonpolice, données utilisateur):
</pre>
<p>Le programme d'exemple <a href="exemples/fontbutton.py" target="_top">fontbutton.py</a>
illustre l'utilisation du <code class="classname">FontButton</code>. On peut fixer les
propriétés "use-font", "use-size", "show-size" et "show-style" avec les boutons
interrupteurs. La <a href="sec-ColorButtonAndFontButton.html#fontbuttonfig" title="Figure 16.9. Exemple de bouton de police">Figure 16.9, « Exemple de bouton de police »</a> montre le programme
en cours d'exécution.
</p>
<div class="figure">
<a name="fontbuttonfig"></a><p class="title"><b>Figure 16.9. Exemple de bouton de police</b></p>
<div class="mediaobject" align="center"><img src="figures/fontbutton.png" align="middle" alt="Exemple de bouton de police."></div>
</div>
<p></p>
</div>
</div>
<div class="navfooter">
<hr>
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left">
<a accesskey="p" href="sec-ComboBoxAndComboboxEntry.html">Préc.</a> </td>
<td width="20%" align="center"><a accesskey="u" href="ch-NewInPyGTK2.4.html">Chapitre parent</a></td>
<td width="40%" align="right"> <a accesskey="n" href="sec-EntryCompletion.html">Suiv.</a>
</td>
</tr>
<tr>
<td width="40%" align="left" valign="top">16.2. Les listes déroulantes (ComboBox) et listes déroulantes avec saisie (ComboBoxEntry) </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"> 16.4. Zone de saisie avec complètement (EntryCompletion)</td>
</tr>
</table>
</div>
</body>
</html>