|
楼主 |
发表于 2014-7-17 10:47:14
|
显示全部楼层
PyQt\每日一练0711 滑块
本帖最后由 ~风介~ 于 2014-8-15 00:11 编辑
QSlider 滑块、QLabel 标签
滑块部件由一个简单的操控杆构成,用户可以通过向前或向后滑动滑块来选择数据。 这
种选择数据的方式对一些特殊的任务来说比单纯的提供一个数据或使用 spin box 调整数据
大小的方式要自然与友好的多。而标签部件则用来显示文本或图片。
在以下的示例中, 我们将在窗口中显示一个滑块和一个标签。 这次我们将在标签部件中
显示图片,并使用滑块来控制其显示内容。
代码:
- #!/usr/bin/python
- # slider-label.py
- import sys
- from PyQt5 import QtGui, QtCore,QtWidgets
- class SliderLabel(QtWidgets.QWidget):
- def __init__(self, parent = None):
- QtWidgets.QWidget.__init__(self, parent)
- self.setGeometry(300, 300, 250, 150)
- self.setWindowTitle('SliderLabel')
- self.slider = QtWidgets.QSlider(QtCore.Qt.Horizontal, self)
- self.slider.setFocusPolicy(QtCore.Qt.NoFocus)
- self.slider.setGeometry(30, 40, 100, 30)
- self.slider.valueChanged.connect(self.changeValue)
- self.label = QtWidgets.QLabel(self)
- self.label.setPixmap(QtGui.QPixmap('mute.png'))
- self.label.setGeometry(160, 40, 80, 30)
- def changeValue(self, value):
- pos = self.slider.value()
- if pos == 0:
- self.label.setPixmap(QtGui.QPixmap('mute.png'))
- elif 0 < pos <= 30:
- self.label.setPixmap(QtGui.QPixmap('min.png'))
- elif 30 < pos < 80:
- self.label.setPixmap(QtGui.QPixmap('med.png'))
- else:
- self.label.setPixmap(QtGui.QPixmap('max.png'))
- app = QtWidgets.QApplication(sys.argv)
- w = SliderLabel()
- w.show()
- sys.exit(app.exec_())
- '''
- 在这个示例中我们模拟一个音量控制的场景, 通过拖动滑块来改变标签部件中的图片显
- 示。
- self.slider = QtGui.QSlider(QtCore.Qt.Horizontal, self)
- 通过该语句我们创建了一个水平滑块部件。
- self.label = QtGui.QLabel(self)
- self.label.setPixmap(QtGui.QPixmap('icons/mute.png'))
- 以上两行语句用来创建一个标签部件并将 mute.png 加入到该部件中显示。
- self.connect(self.slider, QtCore.SIGNAL('valueChanged(int)'), self.changeValue)
- 这行语句将滑块的 valueChanged()信号与自定义的 changeValue()方法相连接。
- pos = self.slider.value()语句用来获取当前的滑块位置。
- '''
复制代码 截图:
slide-label.zip
(3.8 KB, 下载次数: 6)
|
|