Найти - Пользователи
Полная версия: Косяк в tkinter spinbox
Начало » GUI » Косяк в tkinter spinbox
1
andrey_spb
Для установки времени , часы-минуты применил spinbox.
firstHour = Spinbox(F_cuttimeframe, from_=0, to=23, format='%02.0f',   width = 2, readonlybackground = 'white', state ='readonly').grid(row=2, column=2)
То есть хотел сделать вывод с лидирующими нулями. 00, 01 и т.д.
В linux и win xp все так и работает. А в win 7, 64 разрядной выводит 01, 01,….02, 02 место 10, 11… 20, 21.
То есть ноль лепит слева независимо от количества разрядов в числе.
Как с этим бороться?
andrey_spb
Похоже это баг в версии tkinter.
Вот тут об этом пишут. https://bugs.python.org/issue21303
У заказчика оказалась как назло версия питона с багом в ткинтере. Python 3.2
Приделал костыли.
m_hours = list(map(lambda x:'%02d'%x,list(range(0, 24))))
Hour = Spinbox(F_cuttimeframe, values=m_hours,   width = 2, readonlybackground = 'white', state ='readonly').grid(row=3, column=2)
Так работает как надо.
andrey_spb
Да, со списком значений перемудрил.
Так будет лучше:
m_hours = list(map(lambda x:'%02d'%x,range(0, 24)))
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB