PyQt QSpinBox更新范围取决于其他Spinbox的值


问题内容

我是第一次使用pyqt4开发GUI;

我有一个Spinbox,我希望其中允许的值范围取决于另一个Spinbox的值。例如,第一个旋转框中允许的最大值应等于第二个旋转框中的值。

我认为使用valueChanged()信号来调用类似于以下方法的方法是可能的:

def function
    max = spinbox2.value()
    spinbox1.setMaximum(max)

但这没用,有人知道怎么做吗?

谢谢


问题答案:

您尚未显示代码将spinbox2的“
valueChanged”信号与进行连接的位置function。您正在建立连接吗?同样,您提供的代码function似乎不完整。

您可以尝试如下操作:

spinbbox2.valueChanged.connect(handler)
# Or this which works for Python 3.5
spinbbox2.valueChanged[int].connect(handler)

# The function handler called is called whenever
# value in spinbox2 is changed and parameter to
# handler is the new value of spinbox2
def handler(value):
    spinbox1.setMaximum(value)