2010-10-22 57 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)。儘管你會失去旋轉箭頭。