-
Notifications
You must be signed in to change notification settings - Fork 0
/
sec-CheckButtons.html
183 lines (165 loc) · 7.47 KB
/
sec-CheckButtons.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
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type">
<title>6.3. Les cases à cocher</title>
<link rel="stylesheet" href="pygtktutfr.css" type="text/css">
<meta name="keywords" content="python,pygtk,tutoriel,traduction,bouton,coche">
<link rel="start" href="index.html" title="Tutoriel PyGTK 2.0">
<link rel="home" href="index.html" title="Table des matières">
<link rel="up" href="ch-ButtonWidget.html" title="Chapitre 6. Les boutons">
<link rel="previous" href="sec-ToggleButtons.html" title="6.2. Les boutons à bascule">
<link rel="next" href="sec-RadioButtons.html" title="6.4. Les boutons radio">
</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="En-tête de navigation">
<tr>
<th colspan="3" align="center">6.3. Les cases à cocher</th></tr>
<tr>
<td width="20%" align="left"><a accesskey="p" href="sec-ToggleButtons.html">Préc.</a></td>
<th width="60%" align="center">Chapitre6. Les boutons</th>
<td width="20%" align="right"> <a accesskey="n" href="sec-RadioButtons.html">Suiv.</a></td>
</tr></table>
<hr>
</div>
<div class="sect1">
<div class="titlepage">
<div><h2 class="title" style="clear: both"><a name="sec-CheckButtons"></a>6.3. Les cases
à cocher</h2>
</div></div>
<p>Les case à cocher héritent de nombreuses propriétés et
méthodes des boutons à bascules vus précédemment. Leur aspect
est cependant différent : il ne s'agit plus de boutons avec du texte à
l'intérieur mais de petits carrés portant le texte à leur droite.
Elles servent souvent pour activer/désactiver des options dans les applications.</p>
<p>La méthode de création est semblable à celle des boutons
normaux :</p>
<pre class="programlisting">
case_a_cocher = gtk.CheckButton(<b>label</b>=None)
</pre>
<p>Si l'argument <i><tt>label</tt></i> est fourni, la méthode crée une case
à cocher avec une étiquette à son côté. Le texte
donné sera inspecté à la recherche de caractères
mnémoniques (préfixés par '<tt>_</tt>').</p>
<p>Les opérations de vérification et de définition de l'état
des cases à cocher sont identiques à celles des boutons à bascule.</p>
<p>Le programme <a href="exemples/casesacocher.py" target="_top"><b>casesacocher.py</b></a>
donne une exemple d'utilisation des cases à cocher. La
<a title="Figure 6.3. Exemple de cases à cocher"
href="sec-CheckButtons.html#CasesCocherfig">figure 6.3</a> montre la fenêtre
obtenue :</p>
<div class="figure"><a name="CasesCocherfig"></a><p class="title">
<b>Figure 6.3. Exemple de cases à cocher</b></p>
<div class="mediaobject" align="center"><img src="figures/casesacocher.png" align="center">
</div></div>
<p>Voici le code source du programme <a href="exemples/casesacocher.py" target=_top><b>casesacocher.py</b></a> :</p>
<pre class="programlisting">
1 #!/usr/bin/env python
2
3 # exemple casesacocher.py
4
5 import pygtk
6 pygtk.require('2.0')
7 import gtk
8
9 class Casesacocher:
10 # Notre fonction de rappel. Le parametre "donnees"
11 # transmis a cette methode est affiche sur stdout
12 def fct_rappel(self, widget, donnees=None):
13 print "La %s a ete %s." % (donnees, ("desactivee", "activee")[widget.get_active()])
14
15 # Cette fonction de rappel quitte le programme
16 def evnmt_delete(self, widget, evenement, donnees=None):
17 gtk.main_quit()
18 return gtk.FALSE
19
20 def __init__(self):
21 # Creation d'une nouvelle fenetre.
22 self.fenetre = gtk.Window(gtk.WINDOW_TOPLEVEL)
23
24 # On definit le titre de la fenetre.
25 self.fenetre.set_title("Cases a cocher")
26
27 # On definit un gestionnaire de signal pour "delete_event",
28 # qui quitte GTK immediatement.
29 self.fenetre.connect("delete_event", self.evnmt_delete)
30
31 # On fixe la largeur des bordures de la fenetre.
32 self.fenetre.set_border_width(20)
33
34 # Creation d'une boite verticale.
35 boite_v = gtk.VBox(True, 2)
36
37 # On place la VBox dans la fenetre principale.
38 self.fenetre.add(boite_v)
39
40 # Creation du premier bouton.
41 bouton = gtk.CheckButton("case a cocher 1")
42
43 # Lorsque l'on change l'etat du bouton, la methode fct_rappel() est
44 # appelee, avec un pointeur sur "case a cocher 1" comme argument.
45 bouton.connect("toggled", self.fct_rappel, "case a cocher 1")
46
47
48 # Insertion du bouton 1 dans le quart superieur gauche du tableau.
49 boite_v.pack_start(bouton, True, True, 2)
50
51 bouton.show()
52
53 # Creation du deuxieme bouton.
54
55 bouton = gtk.CheckButton("case a cocher 2")
56
57 # Lorsque l'on change l'etat du bouton, la methode fct_rappel() est
58 # appelee, avec un pointeur sur "case a cocher 2" comme argument.
59 bouton.connect("toggled", self.fct_rappel, "case a cocher 2")
60 # Insertion du bouton 2 dans le quart superieur droit du tableau.
61 boite_v.pack_start(bouton, True, True, 2)
62
63 bouton.show()
64
65 # Creation du bouton "Quitter".
66 bouton = gtk.Button("Quitter")
67
68 # Lorsque l'on clique sur le bouton, la fonction mainquit() est
69 # appelee et le programme se termine.
70 bouton.connect("clicked", lambda wid: gtk.main_quit())
71
72 # Insertion du bouton "Quitter" dans les deux quarts inferieurs du tableau.
73 boite_v.pack_start(bouton, True, True, 2)
74
75 bouton.show()
76 boite_v.show()
77 self.fenetre.show()
78
79 def main():
80 gtk.main()
81 return 0
82
83 if __name__ == "__main__":
84 Casesacocher()
85 main()
</pre>
</div>
<div class="navfooter">
<hr>
<table width="100%" summary="Bas de page de navigation">
<tr>
<td width="40%" align="left"><a accesskey="p" href="sec-ToggleButtons.html">Préc.</a> </td>
<td width="20%" align="center"><a accesskey="u" href="ch-ButtonWidget.html">Chapitre parent</a></td>
<td width="40%" align="right"> <a accesskey="n" href="sec-RadioButtons.html">Suiv.</a></td></tr>
<tr>
<td width="40%" align="left" valign="top">6.2. Les boutons à bascule</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">6.4. Les boutons radio</td>
</tr></table>
</div>
</body>
</html>