gpt4 book ai didi

python - 用户如何向 QDoubleSpinBox 输入无穷大值?

转载 作者:行者123 更新时间:2023-12-01 07:27:04 29 4
gpt4 key购买 nike

我正在尝试使用 PyQt5 在 Python 3.7 中设置 QDoubleSpinBox,它可以采用从 -np.inf 到 np.inf 的一系列值。我还希望用户将值设置为 -np.inf 或 np.inf 中的任何一个。我/用户将如何做到这一点?

调整 QDoubleSpinBox 的最小值和最大值后,可以在代码中设置该值,并且“-inf”或“inf”显示在显示框中。

from PyQt5.QtWidgets import QDoubleSpinBox

[...]

dsbTest = QDoubleSpinBox()

# first set the desired range
dsbTest.setRange(-np.inf, np.inf)

# set the value to positive infinity, successfully
dsbTest.setValue(np.inf)

但是,将其更改为任何其他值(例如 5)后,我发现自己无法在 GUI 中输入“-inf”或“inf”。

当我输入“i”或“inf”时,没有进行任何输入,我的意思是,显示的当前值不会从 5 改变。

最佳答案

我最终这样做了,创建了一个子类。

class InftyDoubleSpinBox(QDoubleSpinBox):

def __init__(self):
super(QDoubleSpinBox, self).__init__()

self.setMinimum(-np.inf)
self.setMaximum(np.inf)

def keyPressEvent(self, e: QtGui.QKeyEvent):

if e.key() == QtCore.Qt.Key_Home:
self.setValue(self.maximum())
elif e.key() == QtCore.Qt.Key_End:
self.setValue(self.minimum())
else:
super(QDoubleSpinBox, self).keyPressEvent(e)

我一开始就将最小值和最大值设置为-np.inf,np.inf。在 keyPressEvent 中,Home 和 End 按钮将被捕获,以将值设置为最小值或最大值。

对于任何其他键,QDoubleSpinBox 将像往常一样使用react,因为调用了基本函数。

这也适用于调用 init() 后分配的其他最小/最大值。这对于我的情况来说是理想的。

关于python - 用户如何向 QDoubleSpinBox 输入无穷大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57395061/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com