当前位置: 首页 > news >正文

PyQt基础_008_ 按钮类控件QSpinbox

基本操作

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *class spindemo(QWidget):def __init__(self, parent=None):super(spindemo, self).__init__(parent)self.setWindowTitle("SpinBox 例子")self.resize(300, 100)layout = QVBoxLayout()self.l1=QLabel("current value:")self.l1.setAlignment(Qt.AlignCenter)layout.addWidget(self.l1)self.sp = QSpinBox()layout.addWidget(self.sp)self.sp.valueChanged.connect(self.valuechange)self.setLayout(layout)def valuechange(self): self.l1.setText("current value:" + str(self.sp.value()) )if __name__ == '__main__':app = QApplication(sys.argv)ex = spindemo()ex.show()sys.exit(app.exec_())

长按加速

import sysfrom PyQt5.Qt import *class MyASB(QAbstractSpinBox):def __init__(self, parent, num: int = 0):super().__init__(parent)self.current_num = 0self.lineEdit().setText(f"{num}")def stepEnabled(self) -> "QAbstractSpinBox.StepEnabled":return QAbstractSpinBox.StepUpEnabled | QAbstractSpinBox.StepDownEnableddef stepBy(self, steps: int) -> None:self.current_num = self.current_num + stepsself.lineEdit().setText(str(self.current_num))class Window(QWidget):def __init__(self):super().__init__()self.setWindowTitle("QAbstractSpinBox-长按累加加速")self.resize(500, 500)self.move(400, 250)self.setup_ui()def setup_ui(self):asb = MyASB(self)asb.resize(120, 30)asb.move(150, 100)# -------累加加速--------asb.setAccelerated(True) # 加速print(asb.isAccelerated())# ------只读---------asb.setReadOnly(True) # 不能通过键盘直接修改数字,但可以通过小箭头控制数字增减print(asb.isReadOnly())if __name__ == "__main__":app = QApplication(sys.argv)window = Window()window.show()sys.exit(app.exec_())

自定义形状

import sysfrom PyQt5.Qt import *# ------自定义展示格式--------
class MySpinBox(QSpinBox):def textFromValue(self, v: int) -> str:# 修改的只是展示效果,真实数值没有变print(v)return str(v) + "*" + str(v)class Window(QWidget):def __init__(self):super().__init__()self.setWindowTitle("QSpinBox")self.resize(500, 500)self.move(400, 250)self.setup_ui()def setup_ui(self):sb = MySpinBox(self)sb.resize(100, 25)sb.move(100, 100)# ------值的设置与获取-------sb.setValue(20) # 如果设置的数值超过范围,则自动取范围边界值sb.value()if __name__ == "__main__":app = QApplication(sys.argv)window = Window()window.show()sys.exit(app.exec_())

http://www.lryc.cn/news/249974.html

相关文章:

  • 3D点云目标检测:VoxelNex解读
  • opencv-利用DeepLabV3+模型进行图像分割去除输入图像的背景
  • 中国版的 GPTs:InsCode AI 生成应用
  • MySQL 学习笔记(刷题篇)
  • windows系统如何配置yarn环境变量
  • 视频中的文字水印怎么去除?这三招学会轻松去视频水印
  • Java项目学生管理系统二查询所有
  • 27.Spring如何避免在并发下获取不完整的Bean?
  • 浅析SD-WAN企业组网部署中简化网络运维的关键技术
  • 【Rust】快速教程——自定义类型、数字转枚举、Cargo运行
  • python 实现 AIGC 大语言模型中的概率论:生日相同问题的代码场景模拟
  • SD-WAN组网中的CPE及云服务CPE部署方法
  • 理解BatchNormalization层的作用
  • uniapp实现文件预览过程
  • 深度学习-学习笔记记录
  • 程序员养生之道:延寿不忘初心——延寿必备
  • 使用Docker安装部署Swagger Editor并远程访问编辑API文档
  • Nacos 2.X核心架构源码剖析
  • C语言--每日选择题--Day31
  • chrome vue devTools安装
  • Spring Security 6.x 系列(7)—— 源码分析之Builder设计模式
  • PyQt6 中自定义浮点型滑块类
  • 笔记,B+树
  • 代码随想录刷题题Day2
  • 【JAVA面向对象编程】--- 探索子类如何继承父类
  • 从浏览器控制台发送get,post请求
  • 海外问卷调查怎么批量做?可以用指纹浏览器吗?
  • HarmonyOS 位置服务开发指南
  • ThinkPHP6学生选课管理系统
  • uniapp如何与原生应用进行混合开发?