七、PyQt5实现Python界面设计_滑块控件(QSlider)与计数器控件(QSpinBox)

9 篇文章 12 订阅

目录

一、QSlider滑块控件

(1)简介

(2)常用函数

(3)代码演示

二、QSpinBox计数器控件

(1)简介

(2)常用函数

(3)代码演示


一、QSlider滑块控件

(1)简介

1、水平或者垂直的滑动控件,一般用来设置数字,快速滑动来调整数字

2、用给定的parent构造一个垂直的滑块。用给定的parent构造一个滑块。方向参数确定滑块是水平的还是垂直的。有效值是Vertical和Horizo​​n

(2)常用函数

1、initStyleOption(option):使用此QSlider中的值初始化选项。当子类需要QStyleOptionSlider,但又不想自己填写所有信息时,此方法很有用。

2、setTickInterval(ti):此属性保存刻度线之间的间隔。这是一个值间隔,而不是像素间隔。如果为0,则滑块将在singleStep和pageStep之间进行选择。默认值为0。

3、setTickPosition(position):此属性保存此滑块的刻度线位置。有效值由TickPosition枚举描述。默认值为NoTicks。

4、tickInterval():此属性保存刻度线之间的间隔。这是一个值间隔,而不是像素间隔。如果为0,则滑块将在singleStep和pageStep之间进行选择。默认值为0。

5、tickPosition():此属性保存此滑块的刻度线位置。有效值由TickPosition枚举描述。默认值为NoTicks。

6、官方文档:QSlider — Qt for Python

(3)代码演示

'''
滑块控件(QSlider)
'''

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

class QSliderDemo(QWidget):
    def __init__(self):
        super(QSliderDemo,self).__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('滑块控件演示')
        self.resize(300,700)

        layout = QVBoxLayout()
        self.label = QLabel('你好 PyQt5')
        self.label.setAlignment(Qt.AlignCenter)

        layout.addWidget(self.label)

        self.slider = QSlider(Qt.Horizontal)



        # 设置最小值
        self.slider.setMinimum(12)
        # 设置最大值
        self.slider.setMaximum(48)

        # 步长
        self.slider.setSingleStep(3)

        # 设置当前值
        self.slider.setValue(18)

        # 设置刻度的位置,刻度在下方
        self.slider.setTickPosition(QSlider.TicksBelow)
        # 设置刻度的间隔
        self.slider.setTickInterval(6)

        layout.addWidget(self.slider)
        self.slider.valueChanged.connect(self.valueChange)

        self.slider1 = QSlider(Qt.Vertical)
        layout.addWidget(self.slider1)
        # 设置最小值
        self.slider1.setMinimum(10)
        # 设置最大值
        self.slider1.setMaximum(60)

        # 步长
        self.slider1.setSingleStep(5)

        # 设置当前值
        self.slider1.setValue(30)

        # 设置刻度的位置,刻度在下方
        self.slider1.setTickPosition(QSlider.TicksLeft)
        # 设置刻度的间隔
        self.slider1.setTickInterval(2)
        self.slider1.valueChanged.connect(self.valueChange)
        self.setLayout(layout)

    def valueChange(self):
        print('当前值:%s' % self.sender().value())
        size = self.sender().value()
        self.label.setFont(QFont('Arial',size))
if __name__ == '__main__':
    app = QApplication(sys.argv)
    main = QSliderDemo()
    main.show()
    app.exec_()
    del app

二、QSpinBox计数器控件

(1)简介

1、QSpinBox计数器控件同样有快速设置数字的用处,区分于滑动控件,它可以进行直接的输入填写

2、构造一个旋转框,其最小值为0,最大值为99,步进值为1。该值初始设置为0。它是parent的父级。

(2)常用函数

1、cleanText():此属性保存旋转框的文本,但不包括任何前缀,后缀或开头或结尾的空格。

2、displayIntegerBase():此属性保留用于显示旋转框值的基数。默认值为10。

3、maximum():此属性保留旋转框的最大值。设置此属性时,将根据需要调整最小值,以确保范围保持有效。默认最大值为99。

4、minimum():此属性保留旋转框的最小值。设置此属性时,如有必要,将调整最大值,以确保范围保持有效。默认最小值为0。

5、prefix():此属性保留旋转框的前缀。该前缀位于显示值的开头。典型用途是显示度量单位或货币符号。例如:要关闭前缀显示,请将此属性设置为空字符串。默认为无前缀。设置value()== minimum()和specialValueText()时不显示前缀。如果未设置前缀,则返回空字符串。

6、setDisplayIntegerBase(base):此属性保留用于显示旋转框值的基数。默认值为10。

7、setMaximum(max):此属性保留旋转框的最大值。设置此属性时,将根据需要调整最小值,以确保范围保持有效。默认最大值为99。

8、setMinimum(min):此属性保留旋转框的最小值。设置此属性时,如有必要,将调整最大值,以确保范围保持有效。默认最小值为0。

9、setRange(min,max):通过一个函数调用即可设置最小值和最大值的便捷功能等效于

10、官方文档:QSpinBox — Qt for Python

(3)代码演示

'''
计数器控件(QSpinBox)
'''

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

class QSpinBoxDemo(QWidget):
    def __init__(self):
        super(QSpinBoxDemo,self).__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('QSpinBox演示')
        self.resize(300,100)

        layout = QVBoxLayout()
        self.label = QLabel('当前值')
        self.label.setAlignment(Qt.AlignCenter)

        layout.addWidget(self.label)

        self.sb = QSpinBox()
        self.sb.setValue(18)#设置当前值
        self.sb.setRange(10,38)#设置范围
        self.sb.setSingleStep(3)#设置布局
        layout.addWidget(self.sb)
        self.sb.valueChanged.connect(self.valueChange)#值变化时触发
        self.setLayout(layout)

    def valueChange(self):
        self.label.setText('当前值:' + str(self.sb.value()))#获取当前值

if __name__ == '__main__':
    app = QApplication(sys.argv)
    main = QSpinBoxDemo()
    main.show()
    app.exec_()
    del app

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值