2012-04-03 12 views
5

Mi piacerebbe avere uno zero iniziale in un pulsante di selezione per avere sempre due cifre visualizzate.visualizza zero iniziale in un gtk.SpinButton

adj_hour = gtk.Adjustment(int(time.strftime("%H")),0,24,1,1) 
entry_hour = gtk.SpinButton() 
entry_hour.set_adjustment(adj_hour) 

problema è che il primo argomento di gtk.Adjustment deve essere float/int.

Ho provato cose come:

adj_hour = gtk.Adjustment(float(format(int(time.strftime("%H")), '02d')),0,24,1,1) 

ma non funziona.

risposta

5

Collegare al segnale output del pulsante di selezione. Ad esempio, adattando il codice C nella documentazione ho collegato a:

def show_leading_zeros(spin_button): 
    adjustment = spin_button.get_adjustment() 
    spin_button.set_text('{:02d}'.format(int(adjustment.get_value()))) 
    return True 

... 

entry_hour.connect('output', show_leading_zeros) 
+0

Grazie mille, appena ha dovuto cambiare spin_button.set_text ('{: 02d}'. Format (adjustment.get_value())) per spin_button .set_text ('{: 02d}'. format (int (adjust.get_value()))) nella funzione che hai dato. Ho visto un codice simile nella documentazione gtk (per C) ma non ho trovato il metodo .set_text() in pygtk (credo che gtk.SpinButton abbia gtk.Entry come antenato o qualcosa del genere). – jkd

+0

Ho corretto il codice. Hai ragione, il pulsante di selezione eredita dalla voce. – ptomato

Problemi correlati