PyGTK - Classe barra di scorrimento
Questa classe è una classe base astratta per i widget gtk.Hscrollbar e gtk.Vscrollbar. Entrambi sono associati a un oggetto di regolazione. La posizione del pollice della barra di scorrimento è controllata dalle regolazioni di scorrimento. Gli attributi dell'oggetto di regolazione vengono utilizzati come segue:
inferiore | Il valore minimo della regione di scorrimento |
superiore | Il valore massimo della regione di scorrimento |
valore | Rappresenta la posizione della barra di scorrimento, che deve essere compresa tra inferiore e superiore |
dimensioni della pagina | Rappresenta la dimensione dell'area scorrevole visibile |
step_increment | Distanza da scorrere quando si fa clic sulle piccole frecce stepper |
page_increment | Distanza per scorrere quando il Page Up o Page Down tasti premuti |
Il programma seguente mostra un widget HScale e HScrollbar collocati in un VBox aggiunto alla finestra di livello superiore. Ognuno di essi è associato a un oggetto di regolazione.
adj1 = gtk.Adjustment(0, 0, 101, 0.1, 1, 1)
self.adj2 = gtk.Adjustment(10,0,101,5,1,1)
Un widget gtk.HScale è un controllo a scorrimento collegato con adj1. La sua politica di aggiornamento, il numero e la posizione del valore di prelievo sono impostati come segue:
scale1 = gtk.HScale(adj1)
scale1.set_update_policy(gtk.UPDATE_CONTINUOUS)
scale1.set_digits(1)
scale1.set_value_pos(gtk.POS_TOP)
scale1.set_draw_value(True)
gtk.HScrollbar fornisce una barra di scorrimento orizzontale. È associato all'oggetto adj2. Anche la sua politica di aggiornamento è impostata su CONTINUO.
self.bar1 = gtk.HScrollbar(self.adj2)
self.bar1.set_update_policy(gtk.UPDATE_CONTINUOUS)
Per visualizzare il valore istantaneo della barra di scorrimento, il segnale di "valore modificato" di the adjustment object — adj2 è connesso alla funzione di richiamata on_scrolled(). La funzione recupera la proprietà value dell'oggetto di regolazione e la visualizza su un'etichetta sotto la barra di scorrimento.
self.adj2.connect("value_changed", self.on_scrolled)
def on_scrolled(self, widget, data = None):
self.lbl2.set_text("HScrollbar value: "+str(int(self.adj2.value)))
Esempio
Rispettare il codice seguente:
import gtk
class PyApp(gtk.Window):
def __init__(self):
super(PyApp, self).__init__()
self.set_title("Range widgets Demo")
self.set_default_size(250, 200)
self.set_position(gtk.WIN_POS_CENTER)
adj1 = gtk.Adjustment(0.0, 0.0, 101.0, 0.1, 1.0, 1.0)
self.adj2 = gtk.Adjustment(10,0,101,5,1,1)
scale1 = gtk.HScale(adj1)
scale1.set_update_policy(gtk.UPDATE_CONTINUOUS)
scale1.set_digits(1)
scale1.set_value_pos(gtk.POS_TOP)
scale1.set_draw_value(True)
vb = gtk.VBox()
vb.add(scale1)
lbl1 = gtk.Label("HScale")
vb.add(lbl1)
self.bar1 = gtk.HScrollbar(self.adj2)
self.bar1.set_update_policy(gtk.UPDATE_CONTINUOUS)
vb.add(self.bar1)
self.lbl2 = gtk.Label("HScrollbar value: ")
vb.add(self.lbl2)
self.adj2.connect("value_changed", self.on_scrolled)
self.add(vb)
self.connect("destroy", gtk.main_quit)
self.show_all()
def on_scrolled(self, widget, data=None):
self.lbl2.set_text("HScrollbar value: "+str(int(self.adj2.value)))
if __name__ == '__main__':
PyApp()
gtk.main()
Il codice sopra genererà il seguente output: