七、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() 设置提示信息 ...
随机推荐
- [Linux]CentOS与终端破墙
来源:https://www.zybuluo.com/ncepuwanghui/note/954160 参考:https://blog.huihut.com/2017/08/25/LinuxInsta ...
- 使用TensorFlow训练模型的基本流程【转】
原文地址(https://github.com/wmpscc/TensorflowBaseDemo ) 本篇文章将介绍使用tensorflow的训练模型的基本流程,包括制作读取TFRecord,训练和 ...
- 1.PHP连接mysql
1.使用mysqli_connect()函数连接到MySQL数据库: mysqli_connect()函数的格式如下: mysqli_connect('MySQL服务器地址','用户名','用户密 ...
- redis伪集群脚本
#安装redis伪集群脚本,先把redis-..gem及启动脚本放在/data1/redis-cluster目录下,然后执行该脚本即可 #!/bin/bash set -e #获取redis本机ip ...
- layui时间控件,获取页面选中的时间值。
先贴上html文档 <div class='layui-form'> <div class="layui-form-item"> <div class ...
- Ubuntu搜狗拼音输入法崩溃问题
Ubuntu 14.04.5 LTS 环境下搜狗拼音经常崩溃,似乎也没有什么特别好的解决办法. 以下是重启命令 #!/bin/sh >/dev/>& >/dev/>&a ...
- ModelSerializer Meta设置
class AccountSerializer(serializers.ModelSerializer): class Meta: # 模型名称 model = User # 序列化返回的字段 fie ...
- layui-xtree 设置单选框,只能选一个
以下是js代码,首先获取所有节点,再设置只有当前点击的节点状态为选中状态 $.ajax({ type: 'get', url: url, error: function(err){ layer.ale ...
- c语言:第一次作业,分支,顺序结构
1.本章学习总结(2分) 1.1 思维导图 1.2 本章学习体会及代码量学习体会 1.2.1 学习体会 学了几节课的c语言了,因为没自学的原因,跟不上进度.对于c语言现在挺有兴趣的,愿意去花时间去弥补 ...
- 通过.ibd和.frm恢复mysql数据
背景:因为机器损坏,数据库的索引文件什么的都损坏了.只留下了一个mysql的data目录… 此方法恢复数据的前提:建表用的innodb索引 备注:如果mysql的目录还都在,可以先尝试,将mysq ...