2012-04-03 17 views
5

常に2桁の数字が表示されるように、スピンボタンに先行ゼロが表示されます。gtk.SpinButtonの先頭に0が表示されます

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

問題は、gtk.Adjustmentの最初の引数はfloat/intでなければなりません。

は、私のようなものを試してみました:

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

が、それは動作しません。

答えて

5

スピンボタンのoutput信号に接続します。例えば、私がリンクドキュメントのCコードを適応:spin_buttonする:(フォーマット(adjustment.get_value())。 '{} 02D')

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を変更する必要がありました.set_text( '{:02d}'。format(int(adjustment.get_value())))あなたが与えた関数の中で。私はgtkのドキュメント(C)の似たようなコードを見ましたが、私はpygtkの.set_text()メソッドを見つけることができませんでした(私はgtk.SpinButtonがgtk.Entryを祖先などとしていると思います)。 – jkd

+0

私はコードを修正しました。あなたは正しいです、スピンボタンはエントリーから継承します。 – ptomato