gpt4 book ai didi

python - 平均值和最大值之间差距较大的列表的 Pyqt 步长

转载 作者:行者123 更新时间:2023-12-01 07:52:21 26 4
gpt4 key购买 nike

我正在 pyqt 中构建一个工具,它有一个 slider 可以对几何区域进行排序。在某些情况下,数据的平均值或最小面积值与最大值之间可能存在极大差距。

让它像:面积 = [0.5、1.0、1.3、1.7、2.6、3.0、3.5、3.9、4.0、4.1、1023.8、3245.4、3734.3]

当我设置 slider 的最小值和最大值时,大约 95% 的 slider 值为 5 到 3245.4 之间的值。我正在寻找一些解决方案来为 slider 设置某种动态步长,以便从区域列表中查看每个可能的值。即某种这样的

0________________________________5.0__________________________________________________3734.3
^^^

最佳答案

如果您有一个值列表,并且不想要像 log slider 这样的东西,您可以子类化 QSlider 并根据列表中的索引处理值.

一个简单的例子:

class Slider(QSlider):
doubleValueChanged = pyqtSignal(float)
def __init__(self, values, parent=None):
super().__init__(parent)
self.values = values
self.setOrientation(Qt.Horizontal)
self.setRange(0, len(self.values) - 1)
self.setTickInterval(1)
self.valueChanged.connect(lambda index: self.doubleValueChanged.emit(self.values[index]))


if __name__ == '__main__':
import sys

app = QApplication(sys.argv)

slider = Slider([0.5, 1.0, 1.3, 1.7, 2.6, 3.0, 3.5, 3.9, 4.0, 4.1, 1023.8, 3245.4, 3734.3])
slider.doubleValueChanged.connect( lambda value: print("New value", value))
slider.show()
sys.exit(app.exec_())

我创建了一个新信号,因为 QSlider 仅适用于整数。

如果要添加标签,可以重新定义QSlider.paintEvent

关于python - 平均值和最大值之间差距较大的列表的 Pyqt 步长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56146179/

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