PyQt5: chapter2-使用滚动条和滑块

滚动条

  • Slider handle:此控件用于快速移动到文档或图像的任何部分。
  • Scroll arrows: 这些是滚动条两侧的箭头,用于查看当前不可见的文档或图像的所需区域。使用这些滚动箭头时,滑动手柄的位置将移动以显示文档或图像中的当前位置
  • Page control: 页面控件是滚动条的背景,在滚动条上拖动滑块句柄。单击背景时,滑块控制柄向单击一页的方向移动。滑块控制柄移动的量可以通过pageStep属性指定。页面步进是当用户按向上和向下翻页键时滑块移动的量。可以使用setPageStep()方法设置pageStep属性的数量

QScrollBar类

  • setValue()
  • minimum()
  • maximum()
  • setMinimum()
  • setMaximum()
  • setSingleStep()
  • setPageStep()

QScrollBar类可发送的信号:

  • valueChanged()
  • sliderPressed()
  • sliderMoved()
  • sliderReleased()
  • actionTriggered()

实例

  1. 创建Dialog without Buttons模板窗口
  2. 拖入horizontal 和 vertical 滚动条和滑块
  3. 拖入四个Label部件和一个Line Edit部件
  4. 设定水平滚动条的object Name属性为horizontalScrollBarSugarLevel,垂直滚动条的object Name属性为verticalScrollBarPulseRate,水平滑块的object Name为horizontalSliderBloodPressure,垂直滑块的object Name为verticalSliderCholestrolLevel
  5. 设定Line Edit部件的objectName属性为lineEditResult
  6. 保存为demoSliders.ui文件
  7. 使用pyuic生成demoSliders.py文件
  8. 创建calldemoSliders.py文件,代码如下
import sys
from PyQt5.QtWidgets import QDialog,QApplication
from cookbook_200420.demoSliders import *

class MyForm(QDialog):
    def __init__(self):
        super().__init__()
        self.ui=Ui_Dialog()
        self.ui.setupUi(self)
        self.ui.horizontalScrollBarSugarLevel.valueChanged.connect(self.scrollhorizontal)
        self.ui.verticalScrollBarPulseRate.valueChanged.connect(self.scrollvertical)
        self.ui.horizontalSliderBloodPressure.valueChanged.connect(self.sliderhorizontal)
        self.ui.verticalSliderCholestrolLevel.valueChanged.connect(self.slidervertical)
        self.show()
    def scrollhorizontal(self,value):
        self.ui.lineEditResult.setText("Sugar Level : "+str(value))
    def scrollvertical(self,value):
        self.ui.lineEditResult.setText("Pulse Rate : "+str(value))
    def sliderhorizontal(self,value):
        self.ui.lineEditResult.setText("Blood Pressure : "+str(value))
    def slidervertical(self,value):
        self.ui.lineEditResult.setText("Cholestrol Level : "+str(value))
if __name__=="__main__":
    app=QApplication(sys.argv)
    w=MyForm()
    w.show()
    sys.exit(app.exec())
# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'demoSliders.ui'
#
# Created by: PyQt5 UI code generator 5.13.0
#
# WARNING! All changes made in this file will be lost!


from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(400, 300)
        self.horizontalScrollBarSugarLevel = QtWidgets.QScrollBar(Dialog)
        self.horizontalScrollBarSugarLevel.setGeometry(QtCore.QRect(150, 30, 160, 16))
        self.horizontalScrollBarSugarLevel.setOrientation(QtCore.Qt.Horizontal)
        self.horizontalScrollBarSugarLevel.setObjectName("horizontalScrollBarSugarLevel")
        self.horizontalSliderBloodPressure = QtWidgets.QSlider(Dialog)
        self.horizontalSliderBloodPressure.setGeometry(QtCore.QRect(150, 70, 160, 22))
        self.horizontalSliderBloodPressure.setOrientation(QtCore.Qt.Horizontal)
        self.horizontalSliderBloodPressure.setObjectName("horizontalSliderBloodPressure")
        self.verticalScrollBarPulseRate = QtWidgets.QScrollBar(Dialog)
        self.verticalScrollBarPulseRate.setGeometry(QtCore.QRect(150, 120, 21, 111))
        self.verticalScrollBarPulseRate.setOrientation(QtCore.Qt.Vertical)
        self.verticalScrollBarPulseRate.setObjectName("verticalScrollBarPulseRate")
        self.verticalSliderCholestrolLevel = QtWidgets.QSlider(Dialog)
        self.verticalSliderCholestrolLevel.setGeometry(QtCore.QRect(290, 120, 21, 111))
        self.verticalSliderCholestrolLevel.setOrientation(QtCore.Qt.Vertical)
        self.verticalSliderCholestrolLevel.setObjectName("verticalSliderCholestrolLevel")
        self.label = QtWidgets.QLabel(Dialog)
        self.label.setGeometry(QtCore.QRect(40, 30, 101, 21))
        self.label.setObjectName("label")
        self.label_2 = QtWidgets.QLabel(Dialog)
        self.label_2.setGeometry(QtCore.QRect(40, 70, 101, 21))
        self.label_2.setObjectName("label_2")
        self.label_3 = QtWidgets.QLabel(Dialog)
        self.label_3.setGeometry(QtCore.QRect(40, 130, 81, 21))
        self.label_3.setObjectName("label_3")
        self.label_4 = QtWidgets.QLabel(Dialog)
        self.label_4.setGeometry(QtCore.QRect(200, 130, 81, 21))
        self.label_4.setObjectName("label_4")
        self.lineEditResult = QtWidgets.QLineEdit(Dialog)
        self.lineEditResult.setGeometry(QtCore.QRect(40, 240, 311, 31))
        self.lineEditResult.setObjectName("lineEditResult")

        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
        self.label.setText(_translate("Dialog", "Sugar Level"))
        self.label_2.setText(_translate("Dialog", "Blood Pressure"))
        self.label_3.setText(_translate("Dialog", "Pulse rate"))
        self.label_4.setText(_translate("Dialog", " Cholesterol"))

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值