PyQt5:QSlider滑块、QLabel标签(25)

学习《PyQt4入门指南 PDF中文版.pdf 》笔记

QSlider滑块、QLabel标签

         滑块部件由一个简单的操控杆构成,用户可以通过向前或向后滑动滑块来选择数据。这种选择数据的方式对一些特殊的任务来说比单纯的提供一个数据或使用spinbox调整数据大小的方式要自然与友好的多。而标签部件则用来显示文本或图片。

         在一下的示例中,我们将在窗口中显示一个滑块和一个标签。这次我们将在标签部件中显示图片,并使用滑块来控制其显示内容。

<span style="font-size:12px;">#!/usr/bin/python
# slider-label.py

from PyQt5.QtWidgets import QApplication, QLabel, QSlider
from PyQt5 import QtWidgets
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPixmap

class SliderLabel(QtWidgets.QWidget):
    def __init__(self, parent= None):
        QtWidgets.QWidget.__init__(self)
        
        self.setGeometry(300, 300, 500, 320)
        self.setWindowTitle('SliderLabel')
        self.slider = QSlider(Qt.Horizontal, self)
        self.slider.
PyQt5中的QSlider组件是一个用于在给定范围内选择数值的滑块控件。默认情况下,QSlider是单滑块的,但你可以通过自定义实现双滑块功能。以下是如何在PyQt5中实现双滑块QSlider的示例代码: ```python import sys from PyQt5.QtWidgets import QApplication, QWidget, QSlider, QHBoxLayout, QLabel from PyQt5.QtCore import Qt, QObject, pyqtSignal, QRangeSlider class DoubleSlider(QWidget): def __init__(self, parent=None): super(DoubleSlider, self).__init__(parent) self.slider = QRangeSlider(Qt.Horizontal, self) self.slider.setRange(0, 100) self.slider.setRange(20, 80) self.label_min = QLabel("Min: 20", self) self.label_max = QLabel("Max: 80", self) layout = QHBoxLayout() layout.addWidget(self.label_min) layout.addWidget(self.slider) layout.addWidget(self.label_max) self.setLayout(layout) self.slider.startValueChanged.connect(self.on_start_value_changed) self.slider.endValueChanged.connect(self.on_end_value_changed) def on_start_value_changed(self, value): self.label_min.setText(f"Min: {value}") def on_end_value_changed(self, value): self.label_max.setText(f"Max: {value}") class QRangeSlider(QWidget): startValueChanged = pyqtSignal(int) endValueChanged = pyqtSignal(int) def __init__(self, orientation, parent=None): super(QRangeSlider, self).__init__(parent) self.orientation = orientation self.start_value = 20 self.end_value = 80 self.setMinimumSize(100, 50) def setRange(self, start, end): self.start_value = start self.end_value = end self.startValueChanged.emit(self.start_value) self.endValueChanged.emit(self.end_value) def setStartValue(self, value): self.start_value = value self.startValueChanged.emit(self.start_value) def setEndValue(self, value): self.end_value = value self.endValueChanged.emit(self.end_value) if __name__ == "__main__": app = QApplication(sys.argv) window = DoubleSlider() window.show() sys.exit(app.exec_()) ``` 在这个示例中,我们创建了一个自定义的`DoubleSlider`类,该类包含一个水平方向的`QRangeSlider`控件和两个`QLabel`标签。`QRangeSlider`是一个自定义的滑块控件,用于显示和调整最小值和最大值。`DoubleSlider`类通过连接`QRangeSlider`的信号来更新标签文本。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值