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-第十三篇-布局(最后一章废话-理论篇)
Pyside6-第十三篇-布局(最后一章废话-理论篇)
1084 0
Pyside6-第四篇-QCheckBox复选框
Pyside6-第四篇-QCheckBox复选框
1227 0
Pyside6-第四篇-QCheckBox复选框
Pyside6-第十篇-纯文本QPlainTextEdit
Pyside6-第十篇-纯文本QPlainTextEdit
868 0
Pyside6-第十篇-纯文本QPlainTextEdit
Pyside6-第八篇-QLabel文本标签
Pyside6-第八篇-QLabel文本标签
738 0
Pyside6-第七篇-QLineEdit文本行编辑(内设案例)
Pyside6-第七篇-QLineEdit文本行编辑(内设案例)
1447 0
超详细且简单的Qt Designer设置界面背景图
超详细且简单的Qt Designer设置界面背景图
超详细且简单的Qt Designer设置界面背景图
|
6月前
|
前端开发 JavaScript API
Webview+Python:用HTML打造跨平台桌面应用的创新方案
本文系统介绍了使用PyWebView库结合HTML/CSS/JavaScript开发跨平台桌面应用的方法。相比传统方案(如PyQt、Tkinter),PyWebView具备开发效率高、界面美观、资源占用低等优势。文章从技术原理、环境搭建、核心功能实现到性能优化与实战案例全面展开,涵盖窗口管理、双向通信、系统集成等功能,并通过“智能文件管理器”案例展示实际应用。适合希望快速构建跨平台桌面应用的Python开发者参考学习。
656 1
|
数据安全/隐私保护
Pyside6实操笔记(一):系统页面跳转
本文介绍了如何使用Pyside6实现系统页面跳转,包括登录界面跳转到注册界面的代码实现。关键步骤包括创建空窗口、编写跳转逻辑,并提供了完整的登录和注册窗口代码。此外,还涉及了国际化、主题色设置和窗口特效等高级功能。
496 0
Pyside6-第二篇-QPushButton一个普通按钮
Pyside6-第二篇-QPushButton一个普通按钮
532 0
Pyside6-第九篇-QTextEdit多行文本编辑器
Pyside6-第九篇-QTextEdit多行文本编辑器
740 0