Statusbar (Python) Marta Maria Casetti mmcasetti@gmail.com 2012 Rapporte les messages d'information d'importance mineure pour 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 Barre de statut

Cette barre de statut vous informe si vous cliquez sur le bouton ou si vous appuyez sur n'importe quelle touche (et sur quelle touche).

Code utilisé pour générer cet exemple from gi.repository import Gtk from gi.repository import Gdk import sys class MyWindow(Gtk.ApplicationWindow): # a window def __init__(self, app): Gtk.Window.__init__(self, title="StatusBar Example", application=app) self.set_default_size(200, 100) # a label label = Gtk.Label(label="Press any key or ") # a button button = Gtk.Button(label="click me.") # connected to a callback button.connect("clicked", self.button_clicked_cb) # the statusbar self.statusbar = Gtk.Statusbar() # its context_id - not shown in the UI but needed to uniquely identify # the source of a message self.context_id = self.statusbar.get_context_id("example") # we push a message onto the statusbar's stack self.statusbar.push( self.context_id, "Waiting for you to do something...") # a grid to attach the widgets grid = Gtk.Grid() grid.set_column_spacing(5) grid.set_column_homogeneous(True) grid.set_row_homogeneous(True) grid.attach(label, 0, 0, 1, 1) grid.attach_next_to(button, label, Gtk.PositionType.RIGHT, 1, 1) grid.attach(self.statusbar, 0, 1, 2, 1) # add the grid to the window self.add(grid) # callback function for the button clicked # if the button is clicked the event is signaled to the statusbar # onto which we push a new status def button_clicked_cb(self, button): self.statusbar.push(self.context_id, "You clicked the button.") # event handler def do_key_press_event(self, event): # any signal from the keyboard is signaled to the statusbar # onto which we push a new status with the symbolic name # of the key pressed self.statusbar.push(self.context_id, Gdk.keyval_name(event.keyval) + " key was pressed.") # stop the signal emission return True 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)

La méthode Gdk.keyval_name(event.keyval) convertit la valeur des touches event.keyval en noms symboliques. Les noms et les valeurs correspondantes des touches se trouvent ici. À titre d'exemple, GDK_KEY_BackSpace devient la chaîne « Retour arrière ».

Méthodes utiles pour un élément graphique BarreDeStatut

In line 17 the signal "clicked" is connected to the callback function button_clicked_cb() using widget.connect(signal, callback function). See for a more detailed explanation.

La fonction pop(context_id) efface le premier message de la pile de la barre de statut avec le context_id donné.

La méhode remove_all(context_id) efface tous les messages de la pile de la barre de statut ayant l'identifiant context_id donné.

La méthode remove(context_id, message_id) efface le message de la pile de la barre de statut avec le context_id donné. Le message_id est renvoyé par push(context_id, lemessage) quand il pousse le message dans la barre des statut.

Références API

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

GtkStatusbar

Gdk - Key Values