2012-04-03 101 views
5

爲了始終顯示兩位數字,我希望在旋鈕中具有前導零。在gtk中顯示前導零.SpinButton

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

問題是,gtk.Adjustment的第一個參數必須是浮點/ INT。

我嘗試了諸如:

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

,但它不工作。

回答

5

連接到旋轉按鈕的output信號。例如,適應C代碼的文檔中我掛:

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

非常感謝,剛改spin_button.set_text( '{:02D}'。格式(adjustment.get_value()))以spin_button .set_text('{:02d}'.format(int(adjust.get_value())))。我在gtk文檔中看到了類似的代碼(對於C),但是我在pygtk中找不到.set_text()方法(我猜gtk.SpinButton有gtk.Entry作爲祖先或類似的東西)。 – jkd 2012-04-03 18:51:51

+0

我更正了代碼。你是對的,旋轉按鈕從條目繼承。 – ptomato 2012-04-03 21:43:15