关闭

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

831人阅读 评论(0) 收藏 举报
分类:

学习《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.setFocusPolicy(Qt.NoFocus)
        self.slider.setGeometry(30, 40, 100, 30)
        self.slider.valueChanged.connect(self.changeValue)
        self.label = QLabel(self)
        self.label.setPixmap(QPixmap('icons/1.png'))
        self.label.setGeometry(160, 40, 300, 250)

        
    def changeValue(self, value):
        pos = self.slider.value()
        if pos == 0:
            self.label.setPixmap(QPixmap('icons/1.png'))
        elif 0 < pos <= 30:
            self.label.setPixmap(QPixmap('icons/2.png'))
        elif 30 < pos < 80:
            self.label.setPixmap(QPixmap('icons/3.png'))
        else:
            self.label.setPixmap(QPixmap('icons/4.png'))
        

if __name__ == "__main__":
    import sys
    app = QApplication(sys.argv)
    qb = SliderLabel()
    qb.show()
    sys.exit(app.exec_())</span>

         在这个示例中我们拖动滑块去改变标签部件中的图片显示。

         self.slider= QSlider(Qt.Horizontal, self)

         通过该语句我们创建了一个水平滑块部件,当然你也可以创建一个垂直方向的。

         self.label= QLabel(self)

         self.label.setPixmap(QPixmap('icons/1.png'))

         以上两行语句用来创建一个标签部件并将1.png放置进去显示。

         self.slider.valueChanged.connect(self.changeValue)

         这行语句将滑块的valueChanged()信号与自定义的changeValue()方法相连接。

         pos= self.slider.value()语句用来获取当前的滑块位置。



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:50876次
    • 积分:991
    • 等级:
    • 排名:千里之外
    • 原创:49篇
    • 转载:1篇
    • 译文:0篇
    • 评论:10条
    文章分类
    最新评论