七、PyQT5控件——QSlider,QSpinBox
一、Qslider
QSlider是一个滑动条,可以设置成水平或垂直放置。最常用的方法允许用户在某一范围内互动该滑块,并将滑块的位置转换成一个整数值(int类型),这种方式可以在某一个范围内平顺的变动,并触发valuechangd信号,产生相应变化。但QSlider能发射的信号并不局限于这一种:
- valuechanged。滑块位置变动时发射此信号;
- sliderPressed。当用户按下滑块时就会发射该信号;
- sliderMoved。当用户拖动滑块时发射信号;
- sliderReleased。用户释放滑块时发射该信号。
import sys,os
from PyQt5.QtWidgets import QWidget,QSlider,QApplication,QLabel,QVBoxLayout
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import Qt path = os.path.dirname(os.path.dirname(os.path.dirname(__file__))) class MyWindow(QWidget): def __init__(self):
super().__init__()
self.initUI() def initUI(self):
self.setWindowTitle('QSlider示例')
self.setWindowIcon(QIcon(r'%s\4.图标素材\chuan.ico' % path))
self.setGeometry(600,300,300,150) self.lbl = QLabel('当前值为:0')
self.sl = QSlider(Qt.Horizontal)
self.sl.setMaximum(20) #设定最大值
self.sl.setMinimum(-20) #设定最小值
self.sl.setSingleStep(2) #设定最小值 vbx = QVBoxLayout()
vbx.addWidget(self.lbl)
vbx.addWidget(self.sl)
self.setLayout(vbx) self.sl.valueChanged.connect(self.valuechanged) def valuechanged(self):
#print(type(self.sl.value()))
self.lbl.setText('当前值为:' + str(self.sl.value())) if __name__ == '__main__':
app = QApplication(sys.argv)
win = MyWindow()
win.show()
sys.exit(app.exec_())
QSlider示例
示例中使用Qt.Horizontal将滑块设置为水平,也可以通过Qt.Vertical将滑块设置为垂直的。需要说明的是通过setSingleStep()设置步长后,只是通过键盘移动滑块时,步长变为设定值。通过鼠标移动滑块时,步长仍然为1。而且,通过键盘的Home 键可将滑块移动至起始位置,即最小值。同理,End 键移动至结束位置(最大值)。如果不设置最大值和最小值,默认范围是0到99.
除此之外,Qslider还可以设置刻度标记,并且标记的位置可以调整。
| QSlider::NoTicks | 0 | 不绘制任何刻度线 |
| QSlider::TicksBothSides | 3 | 在滑块的两侧绘制刻度线 |
| QSlider::TicksAbove | 1 | 在(水平)滑块上方绘制刻度线 |
| QSlider::TicksBelow | 2 | 在(水平)滑块下方绘制刻度线 |
| QSlider::TicksLeft | TicksAbove | 在(垂直)滑块左侧绘制刻度线 |
| QSlider::TicksRight | TicksBelow | 在(垂直)滑块右侧绘制刻度线 |
二、QSpinBox
QSpinBox是一个计数器控件,允许用户选择一个整数值通过单击向上向下或者按键盘上的上下键来增加减少当前显示的值。不过也可以手动输入指定值 。和Slider一样,默认的取值范围是0到99,每次改变的步长是1 。
QSpinBox类和QDoubleSpinbox类均派生自QAbstractSpinBox类,QSpinBox用于处理整数值,QDoubleSpinBox则用于处理浮点数值,他们之间的区别就是处理数据的类型不同,其他功能基本相同,QDoubleSpinBox的默认精度是两位小数,但可以通过setDecimals()来改变。
import sys,os
from PyQt5.QtWidgets import QWidget,QSpinBox,QApplication,QLabel,QVBoxLayout
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import Qt path = os.path.dirname(os.path.dirname(os.path.dirname(__file__))) class MyWindow(QWidget): def __init__(self):
super().__init__()
self.initUI() def initUI(self):
self.setWindowTitle('QSpinBox示例')
self.setWindowIcon(QIcon(r'%s\4.图标素材\chuan.ico' % path))
self.setGeometry(600,300,200,150) self.lbl = QLabel('当前值为:0')
self.lbl.setAlignment(Qt.AlignCenter)
self.sp = QSpinBox()
# self.sp.setMaximum(-10)
# self.sp.setMaximum(20)
self.sp.setRange(-10,10)
self.sp.setSingleStep(2) vbx = QVBoxLayout()
vbx.addWidget(self.lbl)
vbx.addWidget(self.sp)
self.setLayout(vbx) self.sp.valueChanged.connect(self.valuechanged) def valuechanged(self):
self.lbl.setText('当前值为:' + str(self.sp.value())) if __name__ == '__main__':
app = QApplication(sys.argv)
win = MyWindow()
win.show()
sys.exit(app.exec_())
QSpinBox示例
最大值和最小值可以通过setMaxmum()和setMinimum()分别设置,也可以通过setRange()一次设定好范围。注意,亲测setRange()不能设置步长。

七、PyQT5控件——QSlider,QSpinBox的更多相关文章
- 【2017-06-17】QtGui基础控件:QSpinBox及QDoubleSpinBox
今天开始一个新的系列,主要是翻译并摘录QtGui中基础空间的常用方法,并做一些简单的实验程序: 我觉得这是一个炒冷饭的行为,但有时候冷饭不能不炒,不热不好吃,而且也很容易发霉. 其实到现在这种状态,对 ...
- PyQt5控件支持拖拽方法
让控件支持拖拽动作A.setDragEnable(True) 设置A可以拖动B.setAcceptDrops(True) 设置B可以接受拖动B需要满足两个事件1.dragEnterEvent 将A拖到 ...
- 七:理解控件的运行机制(例:基于CompositeControl命名空间的控件)
组合控件与WebControl控件的事件和属性相差不大组合控件,顾名思义就是把一些控件组合起来形成一个控件这个控件将包含这些控件称为他的子控件 CompositeControl类实现了INameCon ...
- 【Qt开发】常用控件--QSpinBox和QDoubleSpinBox
QSpinBox和QDoubleSpinBox 是UI设计常用的控件. QSpinBox可用于显示和输入整数,并可以在显示框中添加前缀或后缀. QDoubleSpinBox可用于显示和输入小数,并可以 ...
- 如何用ATL创建ActiveX控件
演示截图: 代码简介或代码解析: 如何用ATL创建ActiveX控件 实现了一个ActiveX控件,它在一个圆内部有个正多边形,当用户在多变形内部单击将会使多边形的边数在当前的基础上+1,在多变形外部 ...
- 【转】PyQt5系列教程(七)控件
PyQt5系列教程(七)控件 软硬件环境 Windows 10 Python 3.4.2 PyQt 5.5.1 PyCharm 5.0.4 前言 控件是PyQt应用程序的基石.PyQt5自带很多不 ...
- PyQt5系列教程(七)控件
软硬件环境 Windows 10 Python 3.4.2 PyQt 5.5.1 PyCharm 5.0.4 前言 控件是PyQt应用程序的基石.PyQt5自带很多不同的控件,包括像button.ch ...
- PyQt5——基本控件
PyQt5基本控件使用方法详见:https://blog.csdn.net/jia666666/article/list/5?t=1& PyQt5基本控件汇总: 1.QMainWindow 2 ...
- PyQt5基础控件
QLabel标签 功能:在界面上显示文字.图片.链接等 接口: 方法 描述 setText() 设置显示的内容 setAlignment() 设置文字对齐方式 setToolTip() 设置提示信息 ...
随机推荐
- Ajax学习笔记——基本原理
Ajax(Asynchronous JavaScript + XML)不是语音,不是框架,也不能算是一种技术,而是一种模式.通过这种模式实现不重新加载整个页面的情况下,与服务器交换数据并更新部分网页内 ...
- PyCharm 服务器激活地址
http://www.cnblogs.com/littlehb/p/7784517.html
- 数据库分库分表(sharding)系列
数据库分库分表(sharding)系列 目录; (一) 拆分实施策略和示例演示 (二) 全局主键生成策略 (三) 关于使用框架还是自主开发以及sharding实现层面的考量 (四) 多数据源的 ...
- asp.net ajax get 调用(和post不一样,直接返回json才行,否则报错;post不能返回json)
<script type="text/javascript" > $(document).ready(function () { $('#Label1').click( ...
- myeclipse2017+ssm+tomcat8+jdk1.8
练习上手ssm项目 工具:myeclipse2017,spring4,jdk1.8,tomcat8 搭建链接:https://www.cnblogs.com/cuglkb/p/6734666.html ...
- python day09 函数(第一篇)
2019.4.9 S21 day09笔记总结 一.三元运算 三元运算又叫三目运算.(是为了赋值的) v = 前面 if 条件 else 后面 #条件为真,v取if前面的值:条件为假,v取if后面的值 ...
- 阿里云单机快速部署K8S
网上有很多关于K8S部署测试环境的文章,但是有些部署比较繁琐.这里推荐使用 https://github.com/gjmzj/kubeasz地址文章.文章介绍很详细,记录一下方便自己日后学习使用. # ...
- Excel VBA 连接各种数据库(一) VBA连接MySQL数据库
本文参考[东围居士]的cnblog博文 Excel.VBA与MySQL交互 在自己机器上调试成功,把调试中遇到的问题一并写出了. 本文主要涉及: VBA中的MySQL环境配置 VBA连接MySQL ...
- MySql中三种注释写法
需要特别注意 -- 这种注释后面要加一个空格 #DELETE FROM SeatInformation /*DELETE FROM SeatInformation */ -- DELETE FR ...
- echarts简单的折线图
加jar包 <script src="<%=path %>/js/echarts.min.js"></script> 首先 在jsp页面中 选好 ...