【2.PyQt5 GUI 常用界面组件】3.QSlider和QProgressBar组件

3.QSlider和QProgressBar组件

  • 滑动输入组件

    • QSlider

    • QScrollBar

  • 进度条显示组件

    • QProgressBar

QSlider和QScrollBar组件都是从QAbstractSlider类继承而来的、其属性如下:

属性描述
minimum最小值
maximum最大值
singleStep单步长
pageStep按键PgUp和PgDn时的步长
value当前值
sliderPosition滑块的位置,若tracking属性设置为True,该值等于value
trackingsliderPosition的值是否与value相同
orientation方向,可以设置为水平或垂直,其取值: Qt.Horizontal 表示水平 Qt.Vertical 表示垂直
invertedAppearance显示方式是否反向,若设置为False,水平的Slider由左向右数值逐渐增大
invertedControls反向按键控制,若设置为True,则按键PgUp或PgDn调整的数值方向相反

QSlider专有的属性:

属性描述
tickPosition标尺刻度的显示位置,取值: QSlider.NoTicks 不显示刻度 QSlider.TicksBothSides 标尺两侧都显示刻度 QSlider.TicksAbove 标尺上方显示刻度 QSlider.TicksBelow 标尺下方显示刻度 QSlider.TicksLeft 标尺左侧显示刻度 QSlider.TicksRight 标尺右侧显示刻度TICKiNTERVAL
tickInterval标尺刻度之间的间隔值,若设置为0,会在singleStep和pageStep之间自动选择

QSlider和QScrollBar组件的常用信号

信号描述
valueChanged(int)在滑块改变当前值时发射的信号

QProgressBar的常用属性:

属性描述
minimum最小值
maximum最大值
value当前值
textVisable是否显示文字,文字一般是百分比表示的进度
orientation显示方向
format显示文字的格式,“%p%”显示百分比(默认),“%v”显示当前值,“%m”显示总步数。

下面通过一个示例来演示以上三个组件的使用方法,界面如下:

 

实现功能:当Slider或ScrollBar的当前值改变时,都将设置ProgressBar的当前值;下方的复选框和单选按钮可以多ProgressBar进行相应的设置。

属性设置表:

objectName属性
horizontalSliderminimum=0 maximum=100
horizontalScrollBarminimum=0 maximum=100
progressBarminimum=0 maximum=100
checkBoxTexttext="显示文本"
checkBoxInvertedtext="反向显示"
radioButtonPtext="以百分比显示"
radioButtonVtext="以当前值显示"
radioButtonMtext="以总步数显示"

代码如下:

# coding: utf-8
import sys
from PyQt5.QtWidgets import QWidget, QApplication
from PyQt5.QtCore import pyqtSlot
from ui_widget import Ui_Widget
​
class QAppWidget(QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.__ui = Ui_Widget()
        self.__ui.setupUi(self)
​
        self.__ui.horizontalSlider.valueChanged.connect(self.do_changedValue)
        self.__ui.horizontalScrollBar.valueChanged.connect(self.do_changedValue)
​
    def do_changedValue(self, val):
        self.__ui.progressBar.setValue(val)
​
    @pyqtSlot(bool)
    def on_checkBoxText_clicked(self, checked):
        self.__ui.progressBar.setTextVisible(checked)
​
    @pyqtSlot(bool)
    def on_checkBoxInverted_clicked(self, checked):
        self.__ui.progressBar.setInvertedAppearance(checked)
​
    def on_radioButtonP_clicked(self):
        self.__ui.progressBar.setFormat('%p%')
​
    def on_radioButtonV_clicked(self):
        self.__ui.progressBar.setFormat('%v')
​
    def on_radioButtonM_clicked(self):
        self.__ui.progressBar.setFormat('%m')
​
if __name__ == '__main__':
    app = QApplication(sys.argv)
    widget = QAppWidget()
    widget.show()
    sys.exit(app.exec_())

运行结果:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Janeb1018

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值