2013-10-04 2 views
0

Моя цель - использовать QSpinBox для отображения чисел от от 0 до 9999 с увеличением 1 с использованием 4-значного формата.PyQt4 Формат QSpinBox

Мне удалось установить максимальное значение 9999 с помощью команды setMaximum. Но я не могу найти способ отображения значений в формате 4digits (например, 0000, 0001 0002). Всякий раз, когда я устанавливаю значение с использованием setValue, дисплей SpinBox как .

Как отобразить числа в 4-значном формате (т. Е. Добавить нулевой нуль при необходимости) в QSpinBox?

ответ

1

сделать пользовательский QSpinBox, перекрывая textFromValue:

class MySpinBox(QtGui.QSpinBox): 
    def __init__(self, *args): 
     QtGui.QSpinBox.__init__(self, *args) 

     self.setRange(0,9999) 

    def textFromValue(self, value): 
     return "%04d" % value 
+0

Означает ли это, что нет прямого метода определения того, как значения отображаются, кроме наследования класса QSpinBox? –

+0

Насколько я знаю, это единственный способ. – mguijarr

0

Чтобы сделать то, что вы хотите, просто установить "префикс" атрибут со счётчиком виджета "000". Это будет тогда значениями пэда 0001, 0002 и т. Д.

+0

Это не даст 4-значный формат для значений больше 9. Он просто добавит один и тот же префикс к каждому значению: например, «99 -> 00099», «999 -> 000999» и т. Д. – ekhumoro