ProgressBar se utiliza para mostrar el progreso de las operaciones de larga duración. El Gtk.ProgressBar se puede utilizar en dos modos diferentes:
- modo de porcentaje
- Modo de actividad.
Cuando una aplicación puede determinar cuánto trabajo queda, podemos usar Gtk.ProgressBar en modo de porcentaje. En este modo, se requiere que la aplicación llame a Gtk.ProgressBar.set_fraction() periódicamente para actualizar la barra de progreso, pasando un valor flotante entre 0 y 1 para proporcionar el nuevo valor porcentual.
Cuando una aplicación no puede determinar la cantidad de trabajo a realizar, puede usar el modo de actividad, que muestra la actividad mediante un bloque que se mueve hacia adelante y hacia atrás dentro del área de progreso. En este modo, se requiere que la aplicación llame a Gtk.ProgressBar.pulse() periódicamente para actualizar la barra de progreso. Podemos elegir el tamaño del paso, con el método Gtk.ProgressBar.set_pulse_step() . Por defecto, Gtk.ProgressBar es horizontal y de izquierda a derecha, pero puede cambiarlo a una barra de progreso vertical utilizando el método Gtk.ProgressBar.set_orientation() . Se puede cambiar la dirección en la que crece la barra de progreso usando Gtk.ProgressBar.set_inverted(). Gtk.ProgressBar también puede contener texto que se puede configurar llamando a Gtk.ProgressBar.set_text()y Gtk.ProgressBar.set_show_text() .
Ejemplo :
Python3
from gi.repository import Gtk, GLib import gi # Since a system can have multiple versions # of GTK + installed, we want to make # sure that we are importing GTK + 3. gi.require_version("Gtk", "3.0") class ProgressBarWindow(Gtk.Window): def __init__(self): Gtk.Window.__init__(self, title="ProgressBar Demo") self.set_border_width(10) vbox = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL, spacing=6) self.add(vbox) # Create a ProgressBar self.progressbar = Gtk.ProgressBar() vbox.pack_start(self.progressbar, True, True, 0) # Create CheckButton with labels "Show text", # "Activity mode", "Right to Left" respectively button = Gtk.CheckButton(label="Show text") button.connect("toggled", self.on_show_text_toggled) vbox.pack_start(button, True, True, 0) button = Gtk.CheckButton(label="Activity mode") button.connect("toggled", self.on_activity_mode_toggled) vbox.pack_start(button, True, True, 0) button = Gtk.CheckButton(label="Right to Left") button.connect("toggled", self.on_right_to_left_toggled) vbox.pack_start(button, True, True, 0) self.timeout_id = GLib.timeout_add(50, self.on_timeout, None) self.activity_mode = False def on_show_text_toggled(self, button): show_text = button.get_active() if show_text: text = "Geek For Geeks" else: text = None self.progressbar.set_text(text) self.progressbar.set_show_text(show_text) def on_activity_mode_toggled(self, button): self.activity_mode = button.get_active() if self.activity_mode: self.progressbar.pulse() else: self.progressbar.set_fraction(0.0) def on_right_to_left_toggled(self, button): value = button.get_active() self.progressbar.set_inverted(value) def on_timeout(self, user_data): """ Update value on the progress bar """ if self.activity_mode: self.progressbar.pulse() else: new_value = self.progressbar.get_fraction() + 0.01 if new_value > 1: new_value = 0 self.progressbar.set_fraction(new_value) return True win = ProgressBarWindow() win.connect("destroy", Gtk.main_quit) win.show_all() Gtk.main()
Producción :
Publicación traducida automáticamente
Artículo escrito por amalchandranmv y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA