Python编程实例-PyQt5 GUI编程-Widgets-QSlider

Python编程实例-PyQt5 GUI编程-Widgets-QSlider,第1张

QSlider

文章目录
  • QSlider
    • 1、QSlider创建
    • 2、创建垂直QSlider

QSlider 是一个用于控制有界值的小部件。 QSlider可以是水平的或垂直的。 用户通过移动手柄来选择值。

使用 setMinimumsetMaximumsetRange 指定可能值的范围,也可以显示刻度线。

1、QSlider创建

通过在QSlider构造函数指定方向,创建以水平或垂直方式显示滑块控件:

sp = QSlider(Qt.Horizontal)
sp = QSlider(Qt.Vertical)
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

class MainWindow(QWidget):
    def __init__(self):
        super().__init__()

        layout = QVBoxLayout()
        self.l1 = QLabel("Hello")
        self.l1.setAlignment(Qt.AlignCenter)
        layout.addWidget(self.l1)

        self.sl = QSlider(Qt.Horizontal)
        self.sl.setMinimum(10)
        self.sl.setMaximum(30)
        self.sl.setValue(20)
        self.sl.setTickPosition(QSlider.TicksBelow)
        self.sl.setTickInterval(5)

        layout.addWidget(self.sl)
        self.sl.valueChanged.connect(self.valuechange)
        self.setLayout(layout)
        self.setWindowTitle("SpinBox demo")

    def valuechange(self):
        size = self.sl.value()
        self.l1.setFont(QFont("Arial", size))


def main():
    app = QApplication(sys.argv)
    ex = MainWindow()
    ex.show()
    sys.exit(app.exec())


if __name__ == '__main__':
    main()

以下示例演示了上述功能。 一个QLabel和一个水平QSlider放置在垂直布局中。 QSlider 的 valueChanged信号连接到 valuechange() 方法。

self.sl.valueChanged.connect(self.valuechange)

函数 valuechange() 读取滑块的当前值并将其用作标签标题的字体大小:

size = self.sl.value()
self.l1.setFont(QFont("Arial",size))

运行结果如下:

2、创建垂直QSlider

下面示例将演示如何使用垂直QSlider:

from PyQt5.QtWidgets import (QWidget, QSlider, QHBoxLayout,
                             QLabel, QApplication)
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPixmap
import sys

class MainWindow(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):

        hbox = QHBoxLayout()

        sld = QSlider(Qt.Vertical, self)
        sld.setFocusPolicy(Qt.NoFocus)

        sld.setRange(0, 100)
        sld.setPageStep(5)

        sld.valueChanged.connect(self.changeValue)

        self.label = QLabel("0", self)
        self.label.setStyleSheet('QLabel { background: #007AA5; border-radius: 3px;}')
        self.label.setAlignment(Qt.AlignCenter | Qt.AlignVCenter)
        self.label.setMinimumWidth(80)

        hbox.addStretch()
        hbox.addWidget(sld)
        hbox.addSpacing(15)
        hbox.addWidget(self.label)
        hbox.addStretch()

        self.setLayout(hbox)

        self.setGeometry(300, 300, 350, 250)
        self.setWindowTitle('QSlider')
        self.show()

    def changeValue(self, value):

        self.label.setText(str(value))

def main():

    app = QApplication(sys.argv)
    ex = MainWindow()
    sys.exit(app.exec())


if __name__ == '__main__':
    main()

Qt.Vertical 传递给 QSlider 构造函数,创建垂直QSlider。

 sld = QSlider(Qt.Vertical, self)

运行结果如下:

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/921966.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存