Skip to main content
 首页 » 编程设计

python之无法在 QSpinBox 上设置完整范围

2025年05月04日12artech

我正在尝试创建一个接受所有数字的 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) 但如果我增加的范围超过整个范围,我就无法输入任何内容旋转器吓坏了。有人知道为什么吗?

请您参考如下方法:

that accepts all numbers

我假设您指的是所有整数而不是所有数字?

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

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