美文网首页
PyQt5 QSlider(滑条) 学习

PyQt5 QSlider(滑条) 学习

作者: _Mirage | 来源:发表于2020-04-04 10:51 被阅读0次

A QSlider is a widget that has a simple handle. This handle can be pulled back and forth. This way we are choosing a value for a specific task. Sometimes using a slider is more natural than entering a number or using a spin box.
就像窗体最右边的滑条,我们可以上下移动,页面也会跟着移动。
In our example we will show one slider and one label. The label will display an image. The slider will control the label.

代码:

# coding='utf-8'

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


class Gui(QWidget):
    def __init__(self):
        super(Gui, self).__init__()
        self.start()

    def start(self):
        # 构造函数:QSlider(Qt.Orientation,\
        #       parent: QWidget = None)
        # 利用构造函数创建一个水平方向的,父组件是QWidget的滑条
        sld = QSlider(Qt.Horizontal, self)
        # 让滑条组件不接受焦点(所谓焦点就是你按下tab,\
        #   焦点就会自动切换到能够接受焦点的组件上去)
        # 有点类似于Tkinter组件的属性:takefocus=False
        sld.setFocusPolicy(Qt.NoFocus)
        # 设置滑条的位置和大小
        sld.setGeometry(30, 40, 100, 30)
        # 将信号(valueChanged)(表现为int)和槽(self.change_value)相联系
        sld.valueChanged[int].connect(self.change_value)

        # 创建父组件是QWidget的label
        self.label = QLabel(self)
        # 将label的内容设置为pixmap图像
        self.label.setPixmap(QPixmap('./图片素材/音量/27.png'))
        self.label.setGeometry(160, 40, 80, 30)

        self.setGeometry(300, 300, 280, 170)
        self.setWindowTitle('滑条演示')
        self.show()

    def change_value(self, value):
        # value是int类型(前面信号那里设置的) --> 范围是0->99
        # 当拉动滑条到不同的程度时显示不同的图片,\
        #   当把这个范围刻画的越详细,最后表现的结果越好
        if value == 0:
            self.label.setPixmap(QPixmap('./图片素材/音量/27.png'))
        elif 0 < value <= 30:
            self.label.setPixmap(QPixmap('./图片素材/音量/24.png'))
        elif 30 < value <= 80:
            self.label.setPixmap(QPixmap('./图片素材/音量/25.png'))
        else:
            self.label.setPixmap(QPixmap('./图片素材/音量/29.png'))


app = QApplication(sys.argv)
gui = Gui()
sys.exit(app.exec_())

运行结果: image.png
image.png
image.png
image.png

相关文章

网友评论

      本文标题:PyQt5 QSlider(滑条) 学习

      本文链接:https://www.haomeiwen.com/subject/czydphtx.html