PyQt4: QSpinBox не принимает значения выше 100 - PullRequest
8 голосов
/ 22 апреля 2011

Я довольно новичок в python и qt, я хочу использовать счетчик, который колеблется в диапазоне от 0 до 1000000, но QSpinBox не поднимется выше 100, даже если я установлю максимум на 1000000, я уверен, что это действительно просто сделать Но я искал века и не могу ничего найти. вот код, который я использовал до сих пор:

steps_spin = qt.QSpinBox()
steps_spin.setValue(10000)
steps_spin.setMinimum(100)
steps_spin.setSingleStep(100)

Надеюсь, вы, ребята, можете мне помочь!

Ответы [ 3 ]

9 голосов
/ 13 ноября 2012
  • Максимальное значение по умолчанию для QSpinBox - 99, поэтому setValue ограничено 99.
  • Чтобы установить значение для значения выше 99, вы должны сначала вызвать setMaximum / setRange:

    steps_spin = QtGui.QSpinBox()
    steps_spin.setMinimum(100)
    steps_spin.setMaximum(100000)
    # alternatively, you may call: steps_spin.setRange(100, 100000)
    steps_spin.setValue(10000)
    
3 голосов
/ 19 августа 2011

Из документации PyQt4 :

QSpinBox .__ init__ (self, QWidget parent = None)

Родительский аргумент, если не None, вызываетself, которым будет владеть Qt вместо PyQt.

Создает поле прокрутки с 0 в качестве минимального значения и 99 в качестве максимального значения, значение шага 1. Первоначально установлено значение 0. Это родительское значение для родительского элемента..

См. Также setMinimum (), setMaximum () и setSingleStep ().

Подобный текст можно найти в документации Qt Nokia.

Пример рабочего кода:

from PyQt4 import QtGui
app = QtGui.QApplication([])
steps_spin = QtGui.QSpinBox()
steps_spin.setMaximum(1000000)
steps_spin.setValue(10000)
steps_spin.setMinimum(100)
steps_spin.setSingleStep(100)
steps_spin.show()
3 голосов
/ 22 апреля 2011

Как насчет

steps_spin.setRange(0,1000000)
...