当前位置: 首页 > 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_())

相关文章:

  • 【机器学习 | 可视化系列】可视化系列 之 决策树可视化
  • SpringBoot——Swagger2 接口规范
  • springsecurity5.7.x和springsecurity6.x配置文件对比
  • Vue中使用正则表达式进行文本匹配和处理的方法
  • rabbitMQ对优先级队列的使用
  • OpenLDAP配置web管理界面PhpLDAPAdmin服务-centos9stream
  • MySQL数据库编程进阶
  • 「江鸟中原」有关HarmonyOS-ArkTS的Http通信请求
  • oracle常用通用sql脚本——查询前用户的表空间信息
  • 【古月居《ros入门21讲》学习笔记】12_服务端Server的编程实现
  • 如何用SWIG封装c++接口给java使用?
  • PyTorch模型训练过程内存泄漏问题解决
  • 蓝桥杯官网练习题(平均)
  • Vue学习
  • 基于springboot实现高校食堂移动预约点餐系统【项目源码】
  • [PHP内核探索]PHP中的哈希表
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • ES6 ...操作符
  • KMP算法及优化
  • Markdown 语法简单说明
  • Mysql5.6主从复制
  • Netty源码解析1-Buffer
  • 代理模式
  • 解析带emoji和链接的聊天系统消息
  • 配置 PM2 实现代码自动发布
  • 前端之Sass/Scss实战笔记
  • 深度解析利用ES6进行Promise封装总结
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 【干货分享】dos命令大全
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • #if和#ifdef区别
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • $.ajax()参数及用法
  • (9)STL算法之逆转旋转
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (分布式缓存)Redis持久化
  • (论文阅读11/100)Fast R-CNN
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • (转)可以带来幸福的一本书
  • ***利用Ms05002溢出找“肉鸡
  • .apk文件,IIS不支持下载解决
  • .Net MVC4 上传大文件,并保存表单
  • .net refrector
  • .net Stream篇(六)
  • .net 流——流的类型体系简单介绍
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • .NET设计模式(11):组合模式(Composite Pattern)
  • .Net组件程序设计之线程、并发管理(一)
  • [ SNOI 2013 ] Quare
  • [20150904]exp slow.txt
  • [20190113]四校联考
  • [8-23]知识梳理:文件系统、Bash基础特性、目录管理、文件管理、文本查看编辑处理...
  • [Angular] 笔记 21:@ViewChild