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

QT6 源(78):阅读与注释滑动条 QSlider 的源码,其是基类QAbstractSlider 的子类,及其刻度线的属性举例

(1)本源码在头文件 qslider . h

#ifndef QSLIDER_H
#define QSLIDER_H#include <QtWidgets/qtwidgetsglobal.h>#include <QtWidgets/qabstractslider.h>QT_REQUIRE_CONFIG(slider);QT_BEGIN_NAMESPACEclass QSliderPrivate;
class QStyleOptionSlider;/*
The QSlider widget provides a vertical or horizontal slider.滑块是控制有界值的经典小部件。
它允许用户将滑块手柄沿水平或垂直槽移动,并将手柄的位置转换为合法范围内的整数值。QSlider自身的功能很少,大部分功能都在QAbstractslider中。
最有用的函数是setValue(),用于将滑块直接设置为某个值;
triggerAction()用于模拟单击的效果(对快捷键很有用);
setSingleStep()、setPageStep()用于设置步骤 steps ;
以及setMinimum()和setMaximum()用于定义滚动条的范围。QSlider提供了控制刻度线的方法。您可以使用setTickPosition()来指示您希望刻度线的位置,
setTicklnterval() 来指示您想要的刻度线数量。
the currently set tick position and interval can be queried using the
tickPosition() and tickInterval() functions, respectively。QSlider only provides integer ranges.
Note that although QSlider handles very large numbers,
it becomes difficult for users to use a slider accurately for very large ranges.
A slider accepts focus on Tab and provides both a mouse wheel and a
keyboard interface. The keyboard interface is the following:Left/Right move a horizontal slider by one single step.Up/Down  move a vertical slider by one single step.PageUp   moves up one page.PageDown moves down one page.Home     moves to the start (minimum).End      moves to the end (maximum).*/class Q_WIDGETS_EXPORT QSlider : public QAbstractSlider
{Q_OBJECT//该枚举类的定义就在下方。//This property holds the tickmark position for this slider。//The valid values are described by the QSlider::TickPosition enum.//    The default value is QSlider::NoTicks. //默认不显示滑动条的刻度线Q_PROPERTY(TickPosition tickPosition READ tickPosition WRITE setTickPosition)Q_PROPERTY(int tickInterval READ tickInterval WRITE setTickInterval)//This property holds the interval between tickmarks。//This is a value interval, not a pixel interval.//If it is 0, the slider will choose between singleStep and pageStep.//    The default value is 0.private:friend Q_WIDGETS_EXPORT //友元函数QStyleOptionSlider qt_qsliderStyleOption(QSlider *slider);Q_DISABLE_COPY(QSlider)Q_DECLARE_PRIVATE(QSlider)public://Constructs a vertical slider with the given parent. 看来默认创建垂直滑动条explicit QSlider(QWidget * parent = nullptr);explicit QSlider(Qt::Orientation orientation, QWidget * parent = nullptr);//Constructs a slider with the given parent.//The orientation parameter determines whether the slider is horizontal or//vertical; the valid values are Qt::Vertical and Qt::Horizontal.~QSlider();enum TickPosition {NoTicks = 0,TicksAbove = 1,TicksLeft = TicksAbove,TicksBelow = 2,TicksRight = TicksBelow,TicksBothSides = 3};Q_ENUM(TickPosition) //把本枚举类接入元对象系统//Q_PROPERTY(TickPosition tickPosition READ tickPosition WRITE setTickPosition)TickPosition      tickPosition() const;void           setTickPosition(TickPosition position);//Q_PROPERTY(int tickInterval READ tickInterval WRITE setTickInterval)int      tickInterval() const;void  setTickInterval(int ti);QSize         sizeHint() const override;QSize  minimumSizeHint() const override;bool             event(QEvent      * event) override;
protected:void        paintEvent(QPaintEvent * ev   ) override;void   mousePressEvent(QMouseEvent * ev   ) override;void mouseReleaseEvent(QMouseEvent * ev   ) override;void    mouseMoveEvent(QMouseEvent * ev   ) override;virtual void initStyleOption(QStyleOptionSlider * option) const;}; //完结 class QSlider : public QAbstractSliderQT_END_NAMESPACE#endif // QSLIDER_H

(2)

在这里插入图片描述

(3)

谢谢

http://www.xdnf.cn/news/3969.html

相关文章:

  • 算法热题——等价多米诺骨牌对的数量
  • 【实战教程】React Native项目集成Google ML Kit实现离线水表OCR识别
  • 【云备份】服务端业务处理模块设计与实现
  • 2025-04-18-文本相似度-菜鸟
  • LLM(17):计算所有输入 token 的注意力权重
  • 【C语言练习】023. 编写条件编译代码
  • 高速互联技术:NVLink和PCIe有什么区别
  • 信息系统项目管理师-软考高级(软考高项)​​​​​​​​​​​2025最新(七)
  • 深度学习系统学习系列【4】之反向传播(BP)四个基本公式推导
  • Jogging(ABC249-A-竞赛题解)
  • 【QT】QT安装
  • ​亚马逊云服务器技术全景解析:从基础架构到行业赋能​
  • 42. 接雨水(相向双指针/前后缀分解),一篇文章讲透彻
  • 从代码学习深度学习 - 目标检测前置知识(二) PyTorch版
  • uniapp 云开发全集 云开发的概念
  • 什么是原码、反码与补码?
  • 数据管理能力成熟度评估模型(DCMM)全面解析:标准深度剖析与实践创新
  • 【Java项目脚手架系列】第二篇:JavaWeb项目脚手架
  • js获取明天日期、Vue3大菠萝 Pinia的使用
  • 【Linux系统篇】:Linux线程互斥---如何用互斥锁守护多线程程序
  • MCUboot 中的 BOOT_SWAP_TYPE_PERM 功能介绍
  • (undone) MIT6.S081 2023 学习笔记 (Day11: LAB10 mmap)
  • Redis数据结构ZipList,QuickList,SkipList
  • 《数字图像处理(面向新工科的电工电子信息基础课程系列教材)》封面颜色空间一图的选图历程
  • 电磁气动 V 型球阀:颗粒状矿浆与煤黑水介质处理的革命性解决方案-耀圣
  • GAF-CNN-SSA-LSSVM故障诊断/分类预测,附带模型研究报告(Matlab)
  • 学习海康VisionMaster之亮度测量
  • 图像批量处理工具 界面直观易懂
  • TCP 与 UDP报文
  • Doo全自动手机壳定制系统