QSlider stepping?

问题描述 投票:4回答:2

我想指定QSlider可以滑动的步骤,就像QSpinBox可以通过使用setSingleStep一样。我尝试使用QAbstractSlider的setSingleStep,但这似乎没有效果。

有什么想法吗?

python qt pyqt qslider qabstractslider
2个回答
7
投票

尝试设置tickInterval

编辑

对不起tickInterval,我还没有考虑过,但是我有这个工作代码,它可以使用setSingleStep来完成您想要的工作

import sys
from PyQt4.QtGui import QApplication, QSlider, QMainWindow

class Window(QMainWindow):
    def __init__(self, parent = None):
        super(Window, self).__init__(parent)

        slider = QSlider()
        slider.setMinimum(0)
        slider.setMaximum(100)

        slider.setTickInterval(20)
        slider.setSingleStep(20)


        self.setCentralWidget(slider)


if __name__ == "__main__":
    app = QApplication(sys.argv)

    window = Window()
    window.show()

    sys.exit(app.exec_())

0
投票

我扩展了QSlider类以限制用户,以使他们无法在步骤之间跟踪滑块。SetInterval方法等效于组合setTickIntervalsetSingleStep方法,但还会使滑块停止在刻度值之间。

© www.soinside.com 2019 - 2024. All rights reserved.