滑块QAbstractSlider

继承于 QWidget
抽象类-必须子类化
提供的范围内的整数值
QAbstractSlider
import sys
from PyQt5.QtWidgets import QApplication, QWidget,QAbstractSlider,QSlider,QLabel,QPushButton
from PyQt5.QtCore import Qt class Demo(QWidget):
def __init__(self):
super().__init__()
self.resize(300,300) self.label=QLabel('0 ',self)
self.label.move(80,20) #print(QAbstractSlider.__subclasses__()) #返回QAbstractSlider有几个子类
#共有三个子类:QDial QScrollBar QSlider #QAbstractSlider是抽象类,在窗口中不能显示,所以下面借助于它的子类来验证它的功能 sd=QSlider(self) #创建一个竖直滑块
sd.move(50,50) sd.setMaximum(80) #设置最大值,默认99
#maximum() -> int 返回最大值 sd.setMinimum(10) #设置最小值,默认0
#minimum() -> int 返回最小值 sd.setValue(60) #设置当前值
print(sd.value()) #返回当前值 sd.setSingleStep(5) #设置単步步长--小步长
#按键盘的上下箭头才有效
#singleStep() -> int 返回単步步长 sd.setPageStep(10) #设置页步长
#按键盘的PgUp PgDn才有效
#pageStep() -> int 返回页步长 sd.setTracking(True) #是否追踪-默认值True
#如果设为False 鼠标拖拽滑块时,只有释放鼠标后,才会发出valueChanged信号
#hasTracking() -> bool 返回是否追踪 sd.setSliderPosition(50) #设置滑块的位置
#如果setTracking设置为False时,这条指令不会发出valueChanged信号
#sliderPosition() -> int 返回滑块的位置 sd.setInvertedAppearance(True) #倒立外观-大小头反过来
#invertedAppearance() -> bool 返回是否倒立外观 sd.setInvertedControls(True) #操作反转--上下键位反过来
#invertedControls() -> bool 返回是否操作反转 sd.setOrientation(Qt.Vertical) #设置滑块方向
#Qt.Horizontal 水平
#Qt.Vertical 竖直--默认
#orientation() -> Qt.Orientation 返回滑块的方向 #setSliderDown(bool) 设置是否按下
#isSliderDown() -> bool 返回isSliderDown() -> bool # 信号
sd.valueChanged.connect(self.AA) # 滑块的值发生改变时发出信号
# 会向槽函数传递一个值--滑块对应的值 #sd.sliderPressed.connect(self.BB) #滑块被按下时发出信号 #sd.sliderMoved.connect(self.CC) #滑块被移动时发出信号
# 会向槽函数传递一个值--滑块对应的值 #sd.sliderReleased.connect(self.DD) #滑块被释放时发出信号 sd.actionTriggered.connect(self.EE) #滑块有行为时发出信号
#会向槽函数传递一个参数--行为值
#QAbstractSlider.SliderSingleStepAdd=1 単步步长增加时
#QAbstractSlider.SliderSingleStepSub=2 単步步长减小时
#QAbstractSlider.SliderPageStepAdd=3 页步长增加时
#QAbstractSlider.SliderPageStepSub=4 页步长减小时
#QAbstractSlider.SliderMove=7 滑块移动时 #rangeChanged(int min,int max) 当最大值最小值发生变化时 def EE(self,val):
print('滑块的行为是:',val)
def DD(self):
print('滑块被释放了')
def CC(self,val):
print('滑块被移动了',val)
def AA(self,val):
self.label.setText(str(val))
pass
def BB(self):
print('滑块被按下了') if __name__ == '__main__':
app = QApplication(sys.argv)
demo = Demo()
demo.show()
sys.exit(app.exec_())
子类 QSlider
样式:

import sys
from PyQt5.QtWidgets import QApplication, QWidget,QSlider class Demo(QWidget):
def __init__(self):
super().__init__()
self.resize(300,300) sd=QSlider(self)
sd.move(100,50)
sd.resize(30,250) sd.setTickPosition(QSlider.TicksBothSides) #设置刻度线
#QSlider.NoTicks=0 不要画任何刻度线。
#QSlider.TicksBothSides=3 在凹槽两侧画刻度线。
#QSlider.TicksAbove=1 在(水平)滑块上方绘制刻度线
#QSlider.TicksBelow=2 在(水平)滑块下方绘制刻度线
#QSlider.TicksLeft=1 在(垂直)滑块的左侧绘制刻度线
#QSlider.TicksRight=2 在(垂直)滑块右侧绘制刻度线
#sd.tickPosition() -> QSlider.TickPosition 返回刻度线 sd.setTickInterval(5) #刻度线间隔
#sd.tickInterval() -> int 返回刻度线间隔 if __name__ == '__main__':
app = QApplication(sys.argv)
demo = Demo()
demo.show()
sys.exit(app.exec_())
子类 QScrollBar
import sys
from PyQt5.QtWidgets import QApplication, QWidget,QScrollBar
from PyQt5.QtCore import Qt class Demo(QWidget):
def __init__(self):
super().__init__()
self.resize(300,300) #使用户能够访问比用于显示它的窗口小部件更大的文档部分
#一般是结合QAbstractScrollArea使用
#滚动条通常包括四个单独的控件:滑块,滚动箭头和页面控件
sb=QScrollBar(self)
sb.resize(20,280)
sb.move(270,0)
sb1 = QScrollBar(self)
sb1.setOrientation(Qt.Horizontal)
sb1.resize(280,20)
sb1.move(0,280) #滑块的长度=页步长 sb.valueChanged.connect(self.AA)
sb.grabKeyboard() #捕获键盘
#这个有2个控件可以捕获键盘,不设置的话系统不知道让哪个控件来捕获 def AA(self,val):
print(val) if __name__ == '__main__':
app = QApplication(sys.argv)
demo = Demo()
demo.show()
sys.exit(app.exec_())
QDial-圆形滑块

import sys
from PyQt5.QtWidgets import QApplication, QWidget,QDial
from PyQt5.QtCore import Qt class Demo(QWidget):
def __init__(self):
super().__init__()
self.resize(300,300) dl=QDial(self)
dl.move(100,100)
dl.valueChanged.connect(self.AA) dl.setNotchesVisible(True) #是否显示刻度
#notchesVisible() -> bool 返回是否显示刻度
#大刻度--页步长 小刻度--単步步长 #dl.setWrapping(True) #是否启用包裹
#启用则会在控件周边都设置上刻度, 可以任意指向
#wrapping() -> bool 返回是否启用包裹 dl.setNotchTarget(10) #设置多少间距一个刻度
#浮点数,表示值10一个刻度
#notchTarget() -> float 返回这个值 def AA(self,val):
print(val) if __name__ == '__main__':
app = QApplication(sys.argv)
demo = Demo()
demo.show()
sys.exit(app.exec_())
天子骄龙
滑块QAbstractSlider的更多相关文章
- pyqt5的使用目录
pyqt5的安装 我的第一个例子 标签控件QLabel的使用 按钮QPushButton 信号与槽 pyqt5模块介绍 pycharm活动模板 QObject 定时器 QWidget类-坐标系 ...
- 【PyQt5-Qt Designer】QSlider滑块
QSlider滑块 QSlider简介 QSlider小部件提供了一个垂直或水平滑块. 滑块是控制有界值的经典控件.它允许用户沿水平或垂直凹槽移动滑块手柄,并将手柄的位置转换为合法范围内的整数值. Q ...
- Qt Widgets——抽象滑块及其继承类
三个可视类的默认外观分别如下(win7):它们的滑块都处于最小值0处. 理解QAbstractSlider时 可将它想成就是QScrollBar(该小部件的外观比较多地拥有QAbstractSlide ...
- GUI学习之二十——QAbstractSlider学习总结
今天学习一种全新的输入控件——QAbstractSlider()滑块控件的基础控件. 一.描述: QAbstractSlider()是QWidget()的子类,提供了一个范围内的整数值.它是QSlid ...
- 第15.44节、PyQt输入部件:QAbstractSlider派生类QScrollBar滚动条、QSlider滑动条、QDial刻度盘功能详解
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.引言 Designer中的输入部件Horizo ...
- 第三十七章、PyQt输入部件:QAbstractSlider派生类QScrollBar滚动条、QSlider滑动条、QDial刻度盘功能介绍
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.引言 Designer中的输入部件Horizo ...
- PyQt(Python+Qt)学习随笔:QScrollBar以及QAbstractSlider滚动条部件功能详解
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.概述 在Designer输入部件中Horizo ...
- iOS系列 基础篇 09 开关、滑块和分段控件
iOS系列 基础篇 09 开关.滑块和分段控件 目录: 案例说明 开关控件Switch 滑块控件Slider 分段控件Segmented Control 1. 案例说明 开关控件(Switch).滑块 ...
- jquery版滑块导航栏
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <script src ...
随机推荐
- webService框架CXF的简单使用
最近本来已经将上一个项目交活,全身心投入了另外项目的前端的开发工作.可之前的项目经理通知我,之前的项目需要做一个webService的功能,于是稍微做了一下webService,可是忘了通知我现在的项 ...
- Spring源码入门——DefaultBeanNameGenerator解析 转发 https://www.cnblogs.com/jason0529/p/5272265.html
Spring源码入门——DefaultBeanNameGenerator解析 我们知道在spring中每个bean都要有一个id或者name标示每个唯一的bean,在xml中定义一个bean可以指 ...
- jQuery验证控件jquery.validate.js汉化
如需要修改,可在js代码中加入: jQuery.extend(jQuery.validator.messages, { required: "必选字段", remote: &q ...
- Alert弹出框处理
selenium的API提供了Alert类对alert弹出框的处理的方法,涉及到的方法有text,dismiss(),accept()和send_keys(),在javascript中主要有alert ...
- paramiko远程连接linux服务器进行上传下载文件
花了不少时间来研究paramiko中sftpclient的文件传输,一顿操作猛如虎,最后就一直卡在了路径报错问题,疯狂查阅资料借鉴大佬们的心得,还是搞不好,睡了个午觉醒来,仔细一看原来是指定路径的文件 ...
- Linux 后台执行python或者java代码的命令
1.nohup 命令操作后台执行程序 后台启动 nohup python app.py params1 > nohup.out >& & 查看后台进程启动 jobs -l ...
- C盘无损扩容(傻逼拯救者128G固态分两个盘)
下载DiskGenius.exe 进行拆分分区(我从d盘拆分出20G给c盘) 然后右键此电脑,管理->磁盘管理 选中刚分出来的20G空间指向到c盘
- android adb logcat获取日志文件
一般情况,可以直接在电脑终端上输入logcat来查看手机运行日志,但是测试工作者为了抓取日志文件来给开发人员,需要把日志导出到特定文件中.如下文. 以小米1s手机为例 步骤1:打开第一个终端窗口 ad ...
- c语言中不允许在函数外部给全局变量赋值
今天,在写条件编译的时候,出现了在函数外部给全局变量赋值的情况,gcc报错,那么c语言为什么不允许在函数外部给变量赋值呢?为什么声明变量的时候可以对变量进行赋值? 出错代码: /* 2 * ===== ...
- 关于微信H5页面开发中音乐不自动播放的解决方法
我想应该有很多人在做H5场景应用.H5微刊.H5微杂志的时候加入背景音乐吧(客户需求),相信很多人一定碰过不能自动播放的时候,即使是相同的iPhone 5s也有不播放的时候,很蛋疼吧!? 之前我的解决 ...