ProgressBar (Python) Marta Maria Casetti mmcasetti@gmail.com 2012 Widget, který graficky zobrazuje průběh. ProgressBar Zmáčknutí libovolné klávesy zastaví a spustí tento ProgressBar.

Tento PrograssBar ze zastavuje a spouští zmáčknutím libovolné klávesy.

Kód použitý k vygenerování tohoto příkladu from gi.repository import GLib from gi.repository import Gtk import sys class MyWindow(Gtk.ApplicationWindow): # Okno def __init__(self, app): Gtk.Window.__init__(self, title="ProgressBar Example", application=app) self.set_default_size(220, 20) # Ukazatel průběhu self.progress_bar = Gtk.ProgressBar() # Přidá ukazatel průběhu do okna self.add(self.progress_bar) # Metoda self.pulse je volána každých 100 milisekund # a self.source_id je nastaveno na ID zdroje události # (tj. ukazatel změní polohu každých 100 milisekund) self.source_id = GLib.timeout_add(100, self.pulse) # Obsluha události # Libovolný signál od klávesnice řídí zastavení/spuštění ukazatele průběhu def do_key_press_event(self, event): # Jestliže byl ukazatel průběhu zastaven (proto se source_id == 0 - viz # "else" níže), znovu jej zapne if (self.source_id == 0): self.source_id = GLib.timeout_add(100, self.pulse) # Jestliže se ukazatel pohybuje, odstraní zdroj s ID source_id # z hlavního kontextu (zastaví ukazatel) a nastaví source_id na 0 else: GLib.source_remove(self.source_id) self.source_id = 0 # Zastaví vysílání signálu return True # Zdrojová funkce # Ukazatel průběhu je v "režimu aktivity", když je zavolána tato metoda def pulse(self): self.progress_bar.pulse() # Zavolá funkci znovu 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)
Užitečné metody pro widget ProgressBar

Místo pulse(), která způsobí pohyb lišty tam a zpět, můžeme chtít, aby ProgressBar vyplnil v příslušném poměru (desetinné číslo float v rozmezí 0.01.0 včetně) část lišty odpovídající tomu, co bylo z celku již dokončeno. K tomu se používá set_fraction(fraction).

Chcete-li nastavit text a zobrazit jej (přes lištu) použijte set_text("text") a set_show_text(True). Pokud text nastaven není a použijete set_show_text(True), budou textem procenta dokončené části.

Odkazy k API

V této ukázce se používá následující:

GtkProgressBar

GLib – hlavní smyčka událostí

Gdk – hodnoty kláves