继承与   QWidget--->QAbstractSpinBox

QAbstractSpinBox

import sys
from PyQt5.QtWidgets import QApplication, QWidget,QAbstractSpinBox,QPushButton
from PyQt5.QtGui import QValidatorclass Myasb(QAbstractSpinBox):  #子类化QAbstractSpinBoxdef __init__(self,parent=None,num="0",*args,**kwargs):super().__init__(parent,*args,**kwargs)self.lineEdit().setText(num)  #设置初始值def stepEnabled(self):   #实现控制上下按钮能用的方法#比如 0---100有效if int(self.text())==0:return QAbstractSpinBox.StepUpEnabled   #上可用elif int(self.text())==100:return QAbstractSpinBox.StepDownEnabled  #下可用elif int(self.text())>100 or int(self.text())<0:return QAbstractSpinBox.StepNone   #都不能用else:return QAbstractSpinBox.StepUpEnabled | QAbstractSpinBox.StepDownEnabled  #上下都可用def stepBy(self, p_int):  #用户按下步长按钮时,会自动调用这个方法#用户按下按钮时的处理方法#p_int  用户点击步长按钮时,返回的增量-->1 或 -1s=int(self.text())+p_intself.lineEdit().setText(str(s))  #给控件中的单行文本编辑框设置文本def validate(self, p_str, p_int):   #验证规则#p_str   是文本框的内容#p_int    是光标的位置#我要验证20--80的数据num=int(p_str)if num<20 :  #如果是小于20就返回 暂不作判定是否通过验证return (QValidator.Intermediate, p_str, p_int)elif 20<=num <=80 :return (QValidator.Acceptable, p_str, p_int)  #验证通过else:return (QValidator.Invalid, p_str, p_int)  # 验证不通过passdef fixup(self, p_str):#修复函数num=int(p_str)if num>80 :return '80'if num<20:return '20'pass#看 https://www.cnblogs.com/liming19680104/p/10356797.htmlclass Demo(QWidget):def __init__(self):super().__init__()self.resize(300,300)btn=QPushButton('按钮',self)btn.clicked.connect(self.A)btn.move(50,100)asb=Myasb(self,'50')  #实例化一个自定义的步长调节器self.asb = asbasb.move(50,50)asb.resize(100,30)asb.setAccelerated(True)  #设置长按时是否加速#isAccelerated() -> bool   返回是否加速asb.setReadOnly(True)  #设置只读--用户只能通过调节按钮改变数字,不能在编辑框中输入数值#isReadOnly() -> bool   返回是否只读#除了父类信号外,还有以下一个信号asb.editingFinished.connect(lambda :print('结束编辑'))  #结束编辑时调用def A(self):#print(self.asb.text())   #返回文本编辑框中显示的文本print(self.asb.lineEdit().text())  # 返回文本编辑框中显示的文本#self.asb.lineEdit().setText('88')  #设置文本编辑框中的文本#self.asb.setAlignment(Qt.AlignHCenter)  #设置对齐方式#参数看  https://www.cnblogs.com/liming19680104/p/10353781.html#self.asb.setFrame(False)  #设置是否有周边框架--默认是True#hasFrame() -> bool   返回是否有边框#self.asb.clear()  #清空内容#单行文本编辑器的方法都可以使用if __name__ == '__main__':app = QApplication(sys.argv)demo = Demo()demo.show()sys.exit(app.exec_())

QSpinBox

样式:      

主要处理整数和离散值集

import sys
from PyQt5.QtWidgets import QApplication, QWidget,QPushButton,QSpinBoxclass SB(QSpinBox):  #子类化,重写textFromValue方法--自定义展示格式def textFromValue(self, p_int):  #每次改变数值,都会调用此函数#p_int 是编辑框中显示的值print('suzi',p_int)return str(p_int)+'*'+ str(p_int)  #返回给编辑框的文本passclass Demo(QWidget):def __init__(self):super().__init__()self.resize(300,300)btn=QPushButton('按钮',self)btn.clicked.connect(self.A)btn.move(50,100)sb=SB(self)  #实例化一个对象self.sb=sbsb.move(50,50)sb.resize(100,30)#sb.valueChanged.connect(self.B)   #值改变时发出信号#会向槽函数传递一个整数值---文本框中改变后的值sb.valueChanged[str].connect(self.B)  # 值改变时发出信号# 会向槽函数传递一个字符串---文本框中改变后的文本#设置数值范围--默认调整0到99范围之间的整数sb.setMaximum(50)  #设置最大值#maximum() -> int    返回最大值sb.setMinimum(10)  #设置最小值#minimum() -> int   返回最小值sb.setRange(5, 40)  #设置数值区间
sb.setWrapping(True)  #设置是否数值循环#wrapping() -> bool   返回是否数值循环
sb.setSingleStep(1)  #设置步长#singleStep() -> int   返回步长
sb.setPrefix("周")  #设置前缀#prefix() -> str   返回前缀sb.setSuffix("月")  #设置后缀#suffix() -> str   返回后缀
sb.setSpecialValueText('最小值')  #当数据到达最小值时, 会显示此字符串sb.setDisplayIntegerBase(16)  #设置数据的进制---默认10进制#displayIntegerBase() -> int   返回进制def B(self,i):print('值改变了',i)passdef A(self):self.sb.setValue(25)  # 设置值s = self.sb.value()  # 返回值--十进制-不包括前缀后缀if __name__ == '__main__':app = QApplication(sys.argv)demo = Demo()demo.show()sys.exit(app.exec_())

s=self.sb.cleanText() #获取编辑框的内容--文本格式

QDoubleSpinBox-浮点

import sysfrom PyQt5.QtWidgets import QApplication, QWidget,QPushButton,QDoubleSpinBox

class SB(QDoubleSpinBox):  #子类化,重写textFromValue方法--自定义展示格式    def textFromValue(self, p_int):  #每次改变数值,都会调用此函数        #p_int 是编辑框中显示的值        return str(p_int)+'*'+ str(p_int)  #返回给编辑框的文本        pass

class Demo(QWidget):    def __init__(self):        super().__init__()        self.resize(300,300)        btn=QPushButton('按钮',self)        btn.clicked.connect(self.A)        btn.move(50,100)        sb=SB(self)  #实例化一个对象        self.sb=sb        sb.move(50,50)        sb.resize(150,30)

        sb.setDecimals(2)  #设置小数位数        #decimals() -> int 返回小数位数

        #sb.valueChanged.connect(self.B)   #值改变时发出信号        #会向槽函数传递一个浮点数---文本框中改变后的值        sb.valueChanged[str].connect(self.B)  # 值改变时发出信号        # 会向槽函数传递一个字符串---文本框中改变后的文本

        #设置数值范围--默认调整0.00到99.99范围之间的整数        sb.setMaximum(50)  #设置最大值        #maximum() -> int    返回最大值        sb.setMinimum(10.55)  #设置最小值        #minimum() -> int   返回最小值        sb.setRange(5.55, 40.55)  #设置数值区间

        sb.setWrapping(True)  #设置是否数值循环        #wrapping() -> bool   返回是否数值循环

        sb.setSingleStep(1.01)  #设置步长        #singleStep() -> int   返回步长

        sb.setPrefix("周")  #设置前缀        #prefix() -> str   返回前缀        sb.setSuffix("月")  #设置后缀        #suffix() -> str   返回后缀

        sb.setSpecialValueText('最小值')  #当数据到达最小值时, 会显示此字符串

    def B(self,i):        print('值改变了',i)        pass    def A(self):        self.sb.setValue(20.55)  # 设置值        s = self.sb.value()  # 返回值--十进制-不包括前缀后缀        s=self.sb.cleanText() #获取编辑框的内容--文本格式        print('文本格式获取',s)

if __name__ == '__main__':    app = QApplication(sys.argv)    demo = Demo()    demo.show()    sys.exit(app.exec_())
 

天子骄龙

转载于:https://www.cnblogs.com/liming19680104/p/10358708.html

pyqt5-步长调节器相关推荐

  1. Python 小白从零开始 PyQt5 项目实战(4)基本控件

    本系列面向 Python 小白,从零开始实战解说应用 QtDesigner 进行 PyQt5 的项目实战. 什么叫从零开始?从软件安装.环境配置开始.不跳过一个细节,不漏掉一行代码,不省略一个例图. ...

  2. GUI学习之十四——QAbstractSpinBox学习总结

    QAbstractSpinBox是一个抽象类,是将所有步长调节器的通用的功能抽象出了一个父类.虽然QAbstractSpinBox是一个抽象类,但是可以直接实例化使用.QAbstractSpinBox ...

  3. python gui编程 从入门到项目实战_python GUI编程 QT5开发项目实战

    目录:├─01-PyQT简介及优势├─02-PyQT5开发环境搭建├─03-PyQT5应该学什么├─04-PyQT5库结构├─05-PyQT5程序基本结构分析├─06-PyQT5-Pycharm活动模 ...

  4. pythonqt项目_python GUI编程 QT5开发项目实战

    目录:├─01-PyQT简介及优势├─02-PyQT5开发环境搭建├─03-PyQT5应该学什么├─04-PyQT5库结构├─05-PyQT5程序基本结构分析├─06-PyQT5-Pycharm活动模 ...

  5. NLP自然语言处理入门学习笔记(一)

    文章目录 一.NLP简介 1.1.什么是自然语言处理 1.2.NLP发展简史 1.3.NLP应用场景 二.文本预处理 2.1.认识文本预处理 2.2.文本处理的基本方法 2.2.1.分词简介 2.2. ...

  6. pyqt5 输入确认_对PyQt5的输入对话框使用(QInputDialog)详解

    PyQt5中QInputDialog的使用,Qt的QInputDialog类提供了一种简单方面的对话框来获得用户的单个输入信息,它提供了4种数据类型的输入: 1)字符串型(方法=QInputDialo ...

  7. pyqt5讲解3:QComboBox,QSpinBox,QSlider

    下拉列表框QComboBox QComboBox是一个集按钮和下拉选项于一体的控件,也称为下拉列表框. 常用的方法 addItem() 添加一个下拉选项 addItems() 从列表中添加下拉选项 C ...

  8. Python 小白从零开始 PyQt5 项目实战(8)汇总篇(完整例程)

    本系列面向 Python 小白,从零开始实战解说应用 QtDesigner 进行 PyQt5 的项目实战.不跳过一个细节,不漏掉一行代码,不省略一个例图. 本系列从软件安装.环境配置开始,介绍了基本应 ...

  9. 使用Opencv2+Pyqt5实现人脸识别视频马赛克

    [视频马赛克系统]使用Opencv2+Pyqt5实现人脸识别视频马赛克功能 1.实现背景 2.开发资源.环境准备 3.实现目标 4.开发原理 6.编译实现 1.视频中人脸马赛克 2.电脑摄像头进行人脸 ...

最新文章

  1. Adam 那么棒,为什么还对 SGD 念念不忘?一个框架看懂深度学习优化算法
  2. python opencv 腐蚀_opencv 图像的腐蚀(erode)和膨胀(dilate) 开运算以及闭运算
  3. I/O端口地址分配表(转)
  4. 学计算机需要多少内存,电脑内存多大才够用
  5. [一起读源码]走进C#并发队列ConcurrentQueue的内部世界 — .NET Core篇
  6. 100个微信小程序的源码公开分享
  7. 从基础概念到数学公式,这是一份520页的机器学习笔记(图文并茂)
  8. 如何使用Cisdem Video Converter在Mac上将大型 AVI 转换为 MP4
  9. Memcache监控小工具stats命令
  10. android view 屏幕外,安卓如何让View往屏幕外隐藏?
  11. [iOS][Question]performselector may cause a leak because its selector is unknown
  12. 机器学习算法的调试 —— 梯度检验(Gradient Checking)
  13. mybatis_07动态SQL_foreach循环
  14. Http请求URL长度限制
  15. Matlab作图格式设置
  16. Linux系统检测工具sysstat使用实战
  17. 论坛源码推荐(12月24日):OS X原生开源游戏模拟器OpenEmu iOS 7条形码扫描器
  18. echart地图飞线图
  19. 如何知道qq号手机号后三位_知道位
  20. Java学习笔记 (二十七) 使用NIO写文件

热门文章

  1. cressman插值_NCL自带常用插值函数集锦
  2. Lubuntu16.4.3定制教程
  3. Ubuntu14.04系统hostapd编译及使用
  4. 常见Spring异常
  5. 【java】调用System.gc()会发生什么?
  6. 【es】如何使用 Kerberos 确保您 Elasticsearch 集群的安全
  7. 【Flink】Zookeeper connection loss leads to Flink job restart
  8. 95-860-045-源码-定时器-InternalTimerService
  9. 95-38-030-Buffer-Java NIO中-关于DirectBuffer,HeapBuffer的疑问
  10. 【MySQL】MySQL负载均衡常见方法