2012-04-03 3 views
5

항상 두 자리가 표시되도록하려면 스핀 단추에 선행 0을 표시하고 싶습니다.은 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 스핀 버튼 신호에 연결하십시오. 단지 spin_button.set_text을 변경했다,

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

덕분에 많은 예를 들어, 문서에있는 C 코드를 적응 나는에 연결 ('{: 02D}'. 형식 (adjustment.get_value())) spin_button하기 .set_text ('{: 02d}'. format (int (adjustment.get_value()))). 나는 gtk 문서에서 비슷한 코드를 보았지만 (C의 경우) pygtk에서 .set_text() 메소드를 찾을 수 없었다. (gtk.SpinButton은 ancestor 또는 이와 비슷한 gtk.Entry를 가짐). – jkd

+0

코드를 수정했습니다. 당신 말이 맞아요, 스핀 단추는 항목에서 상속합니다. – ptomato

관련 문제