QSpinBox----简介

本文详细介绍了如何使用Qt的QSpinBox类处理整数数据,包括设置范围、数值循环、步长调整、前缀后缀、进制显示、值的设置获取、自定义格式和信号处理。涵盖了最大值最小值控制、特殊文本应用以及基础功能的扩展应用。
摘要由CSDN通过智能技术生成

1、具体子类: 处理整数以及离散数据:可以通过步长调节器按钮控制,也可以通过文本框输入。可以给数字加前后缀。

from PyQt5.Qt import *

class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("QSpinBox的学习")
        self.resize(500, 500)
        self.setup_ui()

    def setup_ui(self):
        # 直接创建控件会限制范围(0-99),且不能输入非数字的其他字符
        sb = QSpinBox(self)
        sb.resize(100, 25)
        sb.move(100, 100)



if __name__ == "__main__":
    import sys
    app = QApplication(sys.argv)
    window = Window()
    window.resize(500, 500)
    window.show()

    sys.exit(app.exec_())

 

 2、最大值、最小值范围:(可以取到最大值和最小值)

    def 最大值最小值(self):
        # 设置步长调节器的最大值
        self.sb.setMaximum(180)
        print(self.sb.maximum())
        # 设置步长调节器的最小值
        self.sb.setMinimum(18)
        # 最大值和最小值都可以取到
        self.sb.setRange(18, 180)

 3、数值循环:当数值达到最大/小值时,跳转到最小/大值。

 def setup_ui(self):
        # 直接创建控件会限制范围(0-99),且不能输入非数字的其他字符
        sb = QSpinBox(self)
        self.sb = sb
        sb.resize(100, 25)
        sb.move(100, 100)
        test_btn = QPushButton(self)
        test_btn.setText("测试按钮")
        test_btn.move(150, 150)
        test_btn.clicked.connect(lambda: self.数值循环())

    def 数值循环(self):
        print(self.sb.wrapping())
        self.sb.setWrapping(True)
        print(self.sb.wrapping())

4、设置步长:

    def 步长设置(self):
        # 3个3个的跳
        self.sb.setSingleStep(3)

5、前缀后缀和特殊文本:(周日---周一:设置最小值所对应的文本)、最小特殊文本;

 特殊文本前不加前缀,会全部变为特殊文本。

    def 前缀和后缀(self):
        # self.sb.setRange(1, 12)
        # self.sb.setSuffix("月")
        self.sb.setRange(0, 6)
        self.sb.setPrefix("周")
        self.sb.setSpecialValueText("周日")

6、进制设置:文本框内部是以怎样的方式显示基数。

 def 显示进制数(self):
        print(self.sb.displayIntegettBase())
        # 以二进制的方式显示文本框数据
        self.sb.setDisplayIntegerBase(2)

7、值的设置和获取:(设置文本框的数值)

 def 设置以及获取数值(self):
        # 获取数据,只能获取数据(指数值部分),不能获得前后缀
        print(self.sb.value())
        # 获取单行文本框中的内容,可以获得所有内容
        print(self.sb.lineEdit().text())
        self.sb.setRange(0, 9)
        self.sb.prefix("撩课")
        # 设置数值超过给定范围,会按照最大值或者最小值设定
        self.sb.setValue(66)

8、自定义展示格式;(现在想要展示一个图片的尺寸,图片包括两个因素(30x30,40x40),无法通过之前格式展示,需要借助自定义格式实现)

# 重写,意味着子类化控件类别
class SB(QSpinBox):
    # 改变控件内部的数值,会调用该方法,将数值传给你,得到字符串
    # 只修改了展示层面
    def textFromValue(self,p_int):
        print(p_int)
        # 1*1,做一个拼接
        return str(p_int) + "*" + str(p_int)

 9、信号:包括从父类继承的信号、还包括特定的信号。(editingFinished()结束编辑时调用)

值发生改变时发射的信号。

        # 显示那种类型的数据通过[]选择
        sb.valueChanged[str].connect(lambda val: print(type(val), val))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

。七十二。

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

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

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

打赏作者

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

抵扣说明:

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

余额充值