【问题标题】:Pyqt slider not updatingPyqt滑块未更新
【发布时间】:2017-08-16 10:39:56
【问题描述】:

我在 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'。选项卡中的其他小部件工作正常。我是否忘记了一些简单的事情,比如启用它或其他什么?

【问题讨论】:

    标签: python pyqt pyqt4 qslider


    【解决方案1】:

    文档状态:

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

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

    解决方法是通过将 int 值从 QSlider 乘以 0.01(或其他值)来将其转换为 float,或者像在 this gist 中那样实现您自己的 QDoubleSlider

    【讨论】:

      猜你喜欢
      • 2020-03-19
      • 2020-06-28
      • 1970-01-01
      • 2019-09-04
      • 2016-10-04
      • 2021-05-06
      • 1970-01-01
      • 2015-09-29
      • 1970-01-01
      相关资源
      最近更新 更多