2012-04-03 44 views
5

Tôi muốn có số 0 đứng đầu trong một spinbutton để luôn có hai chữ số được hiển thị.hiển thị số 0 đứng đầu trong một gtk.SpinButton

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

vấn đề là gtk.Đối số đầu tiên của điều chỉnh phải là dấu phẩy/int.

tôi đã cố gắng những thứ như:

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

nhưng nó không hoạt động.

Trả lời

5

Kết nối với tín hiệu output của nút quay. Ví dụ, thích ứng với mã C trong tài liệu tôi liên kết với:

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

thanks a lot, chỉ cần phải thay đổi spin_button.set_text ('{: 02d}'. Định dạng (adjustment.get_value())) để spin_button .set_text ('{: 02d}'. format (int (adjustment.get_value()))) trong hàm bạn đã cung cấp. Tôi thấy một mã tương tự trong tài liệu gtk (cho C) nhưng tôi không thể tìm thấy phương thức .set_text() trong pygtk (tôi đoán gtk.SpinButton có gtk.Entry làm tổ tiên hoặc một cái gì đó tương tự). – jkd

+0

Tôi đã sửa mã. Bạn nói đúng, nút quay kế thừa từ mục nhập. – ptomato

Các vấn đề liên quan