欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > PyQt5基本窗口控件(QSlider(滑动条))

PyQt5基本窗口控件(QSlider(滑动条))

2025/5/18 16:33:10 来源:https://blog.csdn.net/weixin_42291376/article/details/148035147  浏览:    关键词:PyQt5基本窗口控件(QSlider(滑动条))

QSlider(滑动条)

QSlider控件提供了一个垂直或水平的滑动条,滑动条是一个用于控制有界值的
典型控件,它允许用户沿水平或垂直方向在某一范围内移动滑块,并将滑块所在的
位置转换成一个合法范围内的整数值。有时候这种方式比输入数字或者使用SpinBox
(计数器)更加自然。在槽函数中对滑块所在位置的处相当于从整数之间的最小值
和最高值进行取值。

一个滑块条控件可以以水平或垂直的方式显示,在构造函数中进行设置。

self.sp=QSlider(Qt.Horizontal)
self.sp=QSlider(Qt.Vertical)

QSlider类中的常用方法如表4一19所示。

方法描述
setMinimum()设置滑动条控件的最小值
setMaximum()设置滑动条控件的最大值
setSingleStep()设置滑动条控件递增/递喊的步长值
setValue()设置滑动条控件的值
value()获得滑动条控件的值
setTickInterval()设置刻度间隔
setTickPosition()设置刻度标记的位置,可以输入一个枚举值,这个枚举值指定刻度线相对于块和用户搡作的位置。以下是可以输入的枚举值 QSIider.NoTicks,不绘制任何刻度线;QSlider.TicksBothSides,在滑块的两侧绘制刻度线;QSIider.TicksAbove.在(水平)滑块上方绘制刻度线;QSlider.TicksBeIow,《水平)滑块下方绘制刻度线;QSlider.TicksLeft,在(垂直)块左侧绘制刻度线;QSIider.TicksRight,在(垂直)满块右侧绘制刻线

QSlider类中的常用信号如表4-20所示。

信号描述
vaIueChanged描述当滑块的佰发生改变时发射此信号.此信号是最常用的
sliderPressed当用户按下滑块时发射此信号
sliderMoved当用户拖动滑块时发射此信号
sliderReleased当用户释放滑块时发射此信号

QSlider的使用

import sys
from PyQt5.QtCore import*
from PyQt5.QtGui import*
from PyQt5.QtWidgets import*class SliderDemo(QWidget):def __init__(self,parent=None):super(SliderDemo, self).__init__(parent)self.setWindowTitle('Slider Demo')self.resize(300,100)layout=QVBoxLayout()self.l1=QLabel("Hello PyQt5")self.l1.setAlignment(Qt.AlignCenter)layout.addWidget(self.l1)# 水平方向self.sl=QSlider(Qt.Horizontal)# 设置最小值self.sl=QSlider(Qt.Horizontal)# 设置最小值self.sl.setMinimum(10)# 设置最大值self.sl.setMaximum(50)# 步长self.sl.setSingleStep(3)# 设置当前值self.sl.setValue(20)# 刻度位置,刻度在下方self.sl.setTickPosition(QSlider.TicksBelow)# 设置刻度间隔self.sl.setTickInterval(5)layout.addWidget(self.sl)# 连接信号槽self.sl.valueChanged.connect(self.valueChange)self.setLayout(layout)def valueChange(self):print('current slider value=%s' % self.sl.value())size=self.sl.value()self.sl.setFont(QFont('Arial',size))if __name__ == '__main__':app=QApplication(sys.argv)demo=SliderDemo()demo.show()sys.exit(app.exec_())

运行效果:

image

代码分析
在这个例子中,将一个标签和一个水平滑动条放置在一个垂直布局管理器中。
将滑块的valueChanged信号连接到valuechange()函数。

self.sl.valueChanged.connect(self.valueChange)

槽函数valuechange()读取滑块的当前值,并将其作为字号的大小。

 size=self.sl.value()self.sl.setFont(QFont('Arial',size))

使用setTickInterval(5)设置刻度间隔后,在绘制刻度时就会有9个刻度点(从
10开始,每隔步长5绘制一个点,到50处结束),也就是说,刻度点个数=(最大
值-最小值》刻度间隔+1,本例中的刻度点个数为:(50-10)/5+1=9。

 # 设置最小值
self.sl.setMinimum(10)# 设置最大值
self.sl.setMaximum(50)
# 设置刻度间隔
self.sl.setTickInterval(5)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词