PyQt4:QSpinBox 不接受高于 100 的值

Posted

技术标签:

【中文标题】PyQt4:QSpinBox 不接受高于 100 的值【英文标题】:PyQt4: QSpinBox doesn't accept values higher than 100 【发布时间】:2011-04-22 11:12:16 【问题描述】:

我对 python 和 qt 很陌生,我想使用一个范围从 0 到 1000000 的微调器,但是即使我将最大值设置为 1000000,QSpinBox 也不会超过 100,我相信这真的很简单,但我一直在寻找年龄,找不到任何东西。这是我到目前为止使用的代码:

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

希望大家能帮帮我!

【问题讨论】:

【参考方案1】: 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)

【讨论】:

【参考方案2】:

怎么样

steps_spin.setRange(0,1000000)

【讨论】:

你能说出为什么 Qt 设计器不允许将最大范围设置为 2,176,999,999【参考方案3】:

来自PyQt4 documentation:

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

parent 参数,如果不是 None,则导致 self 归 Qt 所有 而不是 PyQt。

构造一个以 0 为最小值、99 为最大值的旋转框, 步长值为 1。该值最初设置为 0。它的父级为 父母。

另请参见 setMinimum()、setMaximum() 和 setSingleStep()。

您可以在诺基亚的Qt documentation 中找到类似的文字。

工作代码示例:

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()

【讨论】:

以上是关于PyQt4:QSpinBox 不接受高于 100 的值的主要内容,如果未能解决你的问题,请参考以下文章

PyQt4程序不起作用

如何使用 python 在 Maya 中设置目录?目前使用 PyQt4,但愿意接受任何建议

在不更改应用样式的情况下更改 QSpinBox 箭头大小

QSlider 和 QSpinBox 之间的 Qt 模型视图架构

Python / PyQt4:如何使 QComboBox 项可拖动

PyQt5组件之QSpinBox