PyGTK - Classe SpinButton
Il widget SpinnButton, spesso chiamato Spinner è un widget gtk.Entry con frecce su e giù alla sua destra. Un utente può digitare un valore numerico direttamente al suo interno o aumentare o diminuire utilizzando le frecce su e giù. La classe gtk.SpinButton viene ereditata dalla classe gtk.Entry. Utilizza un oggetto gtk.Adjustment con il quale è possibile limitare l'intervallo e il passo del valore numerico nello spinner.
Il widget SpinButton viene creato utilizzando il seguente costruttore:
sp = gtk.SpinButton(adj, climb_rate, digits)
Qui, adj rappresenta il gtk.Adjustment object controlling range, climb_rate è un fattore di accelerazione e il numero di decimali specificato da cifre.
La classe gtk.SpinButton ha i seguenti metodi:
SpinButton.set_adjustment () - Imposta la proprietà "regolazione".
SpinButton.set_digits () - Questo imposta la proprietà "digits" sul valore per determinare il numero di posizioni decimali che devono essere visualizzate dallo spinbutton.
SpinButton.set_increments (step, page) - Questo imposta il valore del passo che ha un incremento applicato per ogni pressione del pulsante sinistro del mouse e il valore della pagina che è l'incremento applicato per ogni pressione del pulsante centrale del mouse.
SpinButton.set_range () - Imposta i valori minimi e massimi consentiti per spinbutton.
SpinButton.set_value (): imposta il pulsante di selezione su un nuovo valore a livello di codice.
SpinButton.update_policy () - I valori validi sono gtk.UPDATE_ALWAYS e gtk.UPDATE_VALID
SpinButton.spin (direction, increment = 1) - Questo incrementa o decrementa il valore di Spinner nella direzione specificata.
Le seguenti sono le costanti di direzione predefinite:
gtk.SPIN_STEP_FORWARD | avanti di step_increment |
gtk.SPIN_STEP_BACKWARD | indietro di step_increment |
gtk.SPIN_PAGE_FORWARD | avanti di step_increment |
gtk.SPIN_PAGE_BACKWARD | indietro di step_increment |
gtk.SPIN_HOME | passare al valore minimo |
gtk.SPIN_END | passare al valore massimo |
gtk.SPIN_USER_DEFINED | aggiungere incremento al valore |
SpinButton.set_wrap () - Se wrap è True, il valore del pulsante di selezione va a capo al limite opposto quando il limite superiore o inferiore dell'intervallo supera.
Il widget gtk.SpinButton emette i seguenti segnali:
valore di cambiamento | Viene emesso quando il valore del pulsante di selezione viene modificato dall'azione della tastiera |
ingresso | Viene emesso quando il valore cambia. |
produzione | Viene emesso quando il valore di visualizzazione del pulsante di selezione viene modificato. ritornaTrue se il gestore imposta correttamente il testo e non sono necessarie ulteriori elaborazioni. |
valore modificato | Viene emesso quando viene modificata una qualsiasi delle impostazioni che modificano la visualizzazione del pulsante di selezione. |
avvolto | Viene emesso subito dopo che il pulsante di selezione si sposta dal valore massimo al valore minimo o viceversa. |
Esempio
L'esempio seguente costruisce un semplice Date Selectorutilizzando tre widget SpinButton. Al selettore del giorno viene applicato un oggetto di regolazione per limitare il valore tra 1 e 31. Il secondo selettore è per il numero di mesi 1—12. Il terzo selettore seleziona l'intervallo di anni 2000—2020.
Rispetta il codice -
import gtk
class PyApp(gtk.Window):
def __init__(self):
super(PyApp, self).__init__()
self.set_title("SpinButton Demo")
self.set_size_request(300, 200)
self.set_position(gtk.WIN_POS_CENTER)
self.set_border_width(20)
vbox = gtk.VBox(False, 5)
hbox = gtk.HBox(True, 3)
lbl1 = gtk.Label("Date")
hbox.add(lbl1)
adj1 = gtk.Adjustment(1.0, 1.0, 31.0, 1.0, 5.0, 0.0)
spin1 = gtk.SpinButton(adj1, 0, 0)
spin1.set_wrap(True)
hbox.add(spin1)
lbl2 = gtk.Label("Month")
hbox.add(lbl2)
adj2 = gtk.Adjustment(1.0, 1.0, 12.0, 1.0, 5.0, 0.0)
spin2 = gtk.SpinButton(adj2, 0, 0)
spin2.set_wrap(True)
hbox.add(spin2)
lbl3 = gtk.Label("Year")
hbox.add(lbl3)
adj3 = gtk.Adjustment(1.0, 2000.0, 2020.0, 1.0, 5.0, 0.0)
spin3 = gtk.SpinButton(adj3, 0, 0)
spin3.set_wrap(True)
hbox.add(spin3)
frame = gtk.Frame()
frame.add(hbox)
frame.set_label("Date of Birth")
vbox.add(frame)
self.add(vbox)
self.connect("destroy", gtk.main_quit)
self.show_all()
PyApp()
gtk.main()
Al momento dell'esecuzione, il codice precedente produrrà il seguente output: