您的位置:首页 > 编程语言 > Qt开发

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

2016-06-01 00:47 381 查看
学习《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()语句用来获取当前的滑块位置。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: