SpinButton (Python) Marta Maria Casetti mmcasetti@gmail.com 2012 Renvoie un entier ou un nombre à virgule flottante de l'utilisateur. Luc Rebert, traduc@rebert.name 2011 Alain Lojewski, allomervan@gmail.com 2011-2012 Luc Pionchon pionchon.luc@gmail.com 2011 Bruno Brouard annoa.b@gmail.com 2011-12 Luis Menina liberforce@freeside.fr 2014 SpinButton

Choisissez un nombre en le saisissant ou en cliquant sur les boutons -/+ !

Code utilisé pour générer cet exemple from gi.repository import Gtk import sys class MyWindow(Gtk.ApplicationWindow): def __init__(self, app): Gtk.Window.__init__(self, title="SpinButton Example", application=app) self.set_default_size(210, 70) self.set_border_width(5) # an adjustment (initial value, min value, max value, # step increment - press cursor keys or +/- buttons to see!, # page increment - not used here, # page size - not used here) ad = Gtk.Adjustment(0, 0, 100, 1, 0, 0) # a spin button for integers (digits=0) self.spin = Gtk.SpinButton(adjustment=ad, climb_rate=1, digits=0) # as wide as possible self.spin.set_hexpand(True) # we connect the signal "value-changed" emitted by the spinbutton with the callback # function spin_selected self.spin.connect("value-changed", self.spin_selected) # a label self.label = Gtk.Label() self.label.set_text("Choose a number") # a grid to attach the widgets grid = Gtk.Grid() grid.attach(self.spin, 0, 0, 1, 1) grid.attach(self.label, 0, 1, 2, 1) self.add(grid) # callback function: the signal of the spinbutton is used to change the # text of the label def spin_selected(self, event): self.label.set_text( "The number you selected is " + str(self.spin.get_value_as_int()) + ".") class MyApplication(Gtk.Application): def __init__(self): Gtk.Application.__init__(self) def do_activate(self): win = MyWindow(self) win.show_all() def do_startup(self): Gtk.Application.do_startup(self) app = MyApplication() exit_status = app.run(sys.argv) sys.exit(exit_status)
Méthodes utiles pour un élément graphique BoutonDactivité

Il faut une valeur Gtk.Adjustment pour construire le Gtk.SpinButton. C'est la représentation d'une valeur avec une limite supérieure et une limite inférieure, avec des incréments d'étape et de page, avec une taille de page et elle se présente sous la forme Gtk.Adjustment(valeur, inferieure, superieure, step_increment, page_increment, page_size) où les champs sont du type float ; step_increment est l'incrément ou le décrément obtenu en agissant sur les touches du curseur ou sur les boutons du BoutonDactivité. Notez que les valeurs page_increment et page_size ne sont pas utilisés dans ce cas et qu'ils doivent être définis à 0.

In line 23 the signal "value-changed" is connected to the callback function spin_selected() using widget.connect(signal, callback function). See for a more detailed explanation.

Si vous voulez que la valeur du BoutonDactivité aille à la ligne quand elle dépasse les limites supérieure ou inférieure, définissez la fonction set_wrap(True) sur vrai. Le signal "wrapped" est alors émis quand cela se produit.

La méthode set_digits(caracteres) définit la précision d'affichage du BoutonDactivité, jusqu'à 20 caractères.

Pour avoir la valeur du BoutonDactivité sous forme d'un nombre entier, utilisez get_value_as_int().

Références API

Dans cet exemple, les éléments suivants sont utilisés :

GtkSpinButton

GtkAdjustment