2010-10-22 59 views
2

我试图创建一个接受所有数字的QSpinBox全方位的,但我有一些麻烦兴田最大值不能设置QSpinBox

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

接受所有数字

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

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