QSpinBox----简介

11 篇文章 0 订阅

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))
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值