gpt4 book ai didi

Python PyQt4 QSlider 间隔大于 1

转载 作者:行者123 更新时间:2023-12-01 02:25:03 29 4
gpt4 key购买 nike

我正在制作一个在滚动区域中包含多个 QSlider 的 gui,对于我的一些 slider ,我需要 10 而不是 1 的间隔。

当我打开 gui 时,刻度是正确的并且跳跃为 10,但是当我返回当前值时,我仍然可以获得刻度之间的值,例如:

slider = QtGui.QSlider(QtCore.Qt.Horizontal)
slider.setMaximum(90)
slider.setMinimum(10)
slider.setTickInterval(10)
slider.setTickPosition(QtGui.QSlider.TicksBelow)
slider.valueChanged.connect(self.slider_value_change)

功能就是:

def slider_value_change(self,value):
print(value)

此代码将返回 10,11,12,13... 而不是 10,20...

有没有办法保留该值,以便它只返回刻度值?还有没有办法向刻度添加标签及其值?

最佳答案

解决此问题的简单方法是考虑 slider 位置的数量,而不是它们的具体

对于 10-90 的值范围(间隔为 10),只有 9 个可能的位置。所以 slider 应该这样配置:

slider = QtGui.QSlider(QtCore.Qt.Horizontal)
slider.setMinimum(1)
slider.setMaximum(9)
slider.setTickInterval(1)
slider.setSingleStep(1) # arrow-key step-size
slider.setPageStep(1) # mouse-wheel/page-key step-size
slider.setTickPosition(QtGui.QSlider.TicksBelow)
slider.valueChanged.connect(self.slider_value_change)

现在您需要做的就是乘以 10 以获得所需的值:

def slider_value_change(self, value):
print(value * 10)

这里的基本思想是,将间隔设置为 1 可以消除介入值的可能性 - 因此只能将 slider 拖动到一组固定的位置。

<小时/>

关于刻度线标签的问题,请参见:

<小时/>

PS:如果您希望鼠标点击直接跳转到 slider 位置,请参阅:

关于Python PyQt4 QSlider 间隔大于 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47494941/

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