无法在QSpinBox上设置全范围

时间:2010-10-22 07:25:29

标签: python pyqt4

我正在尝试创建一个接受所有数字的QSpinBox,但我在使用hte最大值时遇到了一些麻烦

 sbox = QSpinBox(self)
 sbox.setRange(-sys.maxint/88-1, sys.maxint/86)
 sbox.setValue(int(setting.value))

我想只使用sbox.setRange(-sys.maxint-1, sys.maxint)然后我无法输入任何东西,如果我增加范围超过整个微调器的怪异。谁知道为什么?

1 个答案:

答案 0 :(得分:1)

  

接受所有数字

我认为你的意思是所有整数而不是所有数字?

请记住,尽管PyQt是用Python编写的,但底层的Qt库是用C ++编写的,因此它很可能仅限于某个宽度的固定大小整数(例如32位或64位)。如果您尝试使用接近限制的数字,那么QSpinBox中的某些内部计算可能会溢出并回绕,这可以解释您看到的异常行为。

要允许任何整数使用QLineEdit,然后使用int函数将内容解析为Python整数。这将允许输入所有整数(您甚至可以超过sys.maxint)。你会失去旋转箭头。