0

我在 Qt Designer 中创建了一个 GUI,在选项卡小部件的网格布局内有一个水平滑块。以下是 GUI.py 文件中的代码:

self.horizontalSlider = QtGui.QSlider(self.tab)
self.horizontalSlider.setOrientation(QtCore.Qt.Horizontal)
self.horizontalSlider.setObjectName(_fromUtf8("horizontalSlider"))
self.horizontalSlider.setRange(0.1,0.4)
self.horizontalSlider.setValue(0.4)
self.horizontalSlider.setTickInterval(0.05)
self.gridLayout_4.addWidget(self.horizontalSlider, 3, 1, 1, 1)

我在主代码中为释放信号建立了连接:

self.horizontalSlider.sliderReleased.connect(self.SmoothSelected)

在运行时,滑块保持在起始位置,我无法移动它。我用以下方法测试了它的价值:

 print(self.horizontalSlider.value())

但得到'0',而不是我设置的值'0.4'。选项卡中的其他小部件工作正常。我是否忘记了一些简单的事情,比如启用它或其他什么?

4

1 回答 1

4

文档指出:

滑块是用于控制有界值的经典小部件。它允许用户沿着水平或垂直凹槽移动滑块手柄,并将手柄的位置转换为合法范围内的整数值。

因此,setRangesetValuesetTickInterval接受int作为参数。也就是说 - 您只能通过int值移动滑块。

QSlider解决方法是通过将 int 值乘以 .01(或其他值)来将 int 值从转换为 float,或者QDoubleSlider此 gist中实现您自己的值。

于 2017-08-16T11:20:47.193 回答