Pyside6-第十二篇-QSlider滑动条

简介: Pyside6-第十二篇-QSlider滑动条

本篇Pyside6的第十二篇,依旧是开启新功能。QSlider滑动条。

这个在日常开发工具中,比较少用到,不按之前的套路走了,直接上一个示例代码,回到代码中学习。

import sys
from PySide6.QtWidgets import QWidget, QApplication, QSlider
class Lider(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("QSlider")
        self.setGeometry(300, 300, 600, 400)
        self.setup_ui()
    def setup_ui(self) -> None:
        """设置界面"""
        self.slider = QSlider(self)
        self.slider.setGeometry(100, 100, 80, 200)
if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = Lider()
    window.show()
    sys.exit(app.exec())

这样看着着实丑陋。


了解一下.setTickPosition函数方法

setTickPosition

setTickPosition() 设置刻度标记的位置,可以输入一个枚举值,这个枚举值指定刻度线想当与滑块和用户操作的位置,以下是可以输入的枚举值:

QSlider.NoTicks:不绘制任何刻度线  
QSlider.TicksBothSides:在滑块的两侧绘制刻度线  
QSlider.TicksAbove:在滑块的(水平)上方绘制刻度线  
QSlider.TicksBelow:在滑块的(水平)下方绘制刻度线  
QSlider.TicksLeft:在滑块的(垂直)左侧绘制刻度线  
QSlider.TicksRight,在滑块的(垂直)右侧绘制刻度线
import sys
from PySide6.QtWidgets import QWidget, QApplication, QSlider
class Lider(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("QSlider")
        self.setGeometry(300, 300, 600, 400)
        self.setup_ui()
    def setup_ui(self) -> None:
        """设置界面"""
        self.slider = QSlider(self)
        self.slider.setGeometry(100, 100, 80, 200)
        # 在两侧绘制刻度线
        self.slider.setTickPosition(QSlider.TickPosition.TicksBothSides)
if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = Lider()
    window.show()
    sys.exit(app.exec())

显示方式

上述显示都是垂直的,所以这里我们改变一下。

self.sp=QSlider(Qt.Horizontal)
self.sp=Qslider(Qt.Vertical)
import sys
from PySide6.QtCore import Qt
from PySide6.QtWidgets import QWidget, QApplication, QSlider
class Lider(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("QSlider")
        self.setGeometry(300, 300, 600, 400)
        self.setup_ui()
    def setup_ui(self) -> None:
        """设置界面"""
        self.slider = QSlider(Qt.Horizontal,self)
        self.slider.setGeometry(100, 100, 200, 80)
        # 在两侧绘制刻度线
        self.slider.setTickPosition(QSlider.TickPosition.TicksBothSides)
if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = Lider()
    window.show()
    sys.exit(app.exec())

其他操作

setMinimum  设置滑动条控件的最小值
setMaximum  设置滑动条控件的最大值
setSingleStep  设置滑动条控件的步长
setValue   设置滑动条控件的值
value      获取滑动条控件的值
setTickInterval  设置刻度间隔
import sys
from PySide6.QtCore import Qt
from PySide6.QtWidgets import QWidget, QApplication, QSlider
class Lider(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("QSlider")
        self.setGeometry(300, 300, 600, 400)
        self.setup_ui()
    def setup_ui(self) -> None:
        """设置界面"""
        self.slider = QSlider(Qt.Horizontal,self)
        self.slider.setGeometry(100, 100, 200, 80)
        self.slider.setMaximum(100)     # 设置最大值
        self.slider.setMinimum(0)       # 设置最小值
        self.slider.setValue(10)        # 设置默认滑动值
        print(self.slider.value())      # 获取值
        self.slider.setTickInterval(10)     # 设置步长
        # 在两侧绘制刻度线
        self.slider.setTickPosition(QSlider.TickPosition.TicksBothSides)
if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = Lider()
    window.show()
    sys.exit(app.exec())

信号与槽+案例

valueChanged 当滑块的值发生改变时发射此信号,此信号是最常用的
sliderPressed 当用户按下滑块时发射此信号
sliderMoved 当用户拖动滑块时发射此信号
sliderReleased 当用户释放滑块时发射此信号
import sys
from PySide6.QtCore import Qt
from PySide6.QtWidgets import QWidget, QApplication, QSlider, QLabel
class Lider(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("QSlider")
        self.setGeometry(300, 300, 600, 400)
        self.setup_ui()
    def setup_ui(self) -> None:
        """设置界面"""
        self.slider = QSlider(Qt.Horizontal, self)
        self.slider.setGeometry(100, 100, 200, 80)
        self.slider.setMaximum(100)  # 设置最大值
        self.slider.setMinimum(0)  # 设置最小值
        self.slider.setValue(10)  # 设置默认滑动值
        self.slider.setTickInterval(10)  # 设置步长
        # 在两侧绘制刻度线
        self.slider.setTickPosition(QSlider.TickPosition.TicksBothSides)
        self.label = QLabel(self)
        self.label.setGeometry(200, 200, 30, 30)
        self.slider.valueChanged.connect(self.sliderSlot)   # 当滑块的值发生改变时发射此信号
    def sliderSlot(self):
        value = self.slider.value()
        self.label.setText(str(value))
        self.label.setStyleSheet(f"background-color: rgb(255, 200, {value + 50});")
if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = Lider()
    window.show()
    sys.exit(app.exec())

最后代码放在了gitee:

https://gitee.com/qinganan_admin/Pyside6_Information/blob/master/%E7%AC%AC%E5%85%AB%E7%AB%A0%EF%BC%8CSlider%E6%BB%91%E5%9D%97/QSlider.py


目录
相关文章
Pyside6-第八篇-QLabel文本标签
Pyside6-第八篇-QLabel文本标签
436 0
|
3月前
|
C++
EasyX之太空人表盘(2021-6-16)
这篇文章介绍了如何使用C++和EasyX库制作一个太空人表盘程序,包括绘制圆盘、文字、动画、动态时间显示以及音乐播放等功能,并提供了详细的代码实现。
44 0
pyqt5 无边框窗口拖动
pyqt5 无边框窗口拖动
|
8月前
|
C++
qt事件过滤器的使用(可以用于控制屏幕背光等)
qt事件过滤器的使用(可以用于控制屏幕背光等)
133 0
|
8月前
|
Python
tkinter之竖向滑块
tkinter之竖向滑块
61 6
|
存储 Cloud Native Linux
Qt QSlider样式
Qt QSlider样式
Qt之滑动条和进度条(QSlider、QProgressBar)
Qt之滑动条和进度条(QSlider、QProgressBar)
1990 1
|
数据安全/隐私保护
从零开始学Pyqt5之【控件介绍】(2):QLineEdit控件
从零开始学Pyqt5之【控件介绍】(2):QLineEdit控件
从零开始学Pyqt5之【控件介绍】(2):QLineEdit控件
|
C++
Qt界面优化:Qt去边框与窗体圆角化
Qt界面优化:Qt去边框与窗体圆角化
554 0
Qt界面优化:Qt去边框与窗体圆角化

热门文章

最新文章