【Qt 学习笔记】Qt常用控件 | 输入类控件 | Slider的使用及说明

发布于:2024-05-10 ⋅ 阅读:(30) ⋅ 点赞:(0)

  • 博客主页:Duck Bro 博客主页
  • 系列专栏:Qt 专栏
  • 关注博主,后期持续更新系列文章
  • 如果有错误感谢请大家批评指出,及时修改
  • 感谢大家点赞👍收藏⭐评论✍

Qt常用控件 | 输入类控件 | Slider的使用及说明

文章编号:Qt 学习笔记 / 34


一、QSlider介绍

1. 简介

QSlider是Qt框架中的一个控件,用于实现滑动条的功能。滑动条是用户界面中的常用控件之一,可以通过拖动滑块来选择一个值,或者通过点击滑条上的位置来快速定位。
在这里插入图片描述

2. 核心属性

属性 说明
value 持有的数值.
minimum 最⼩值
maximum 最⼤值
singleStep 按下⽅向键的时候改变的步⻓.
pageStep 按下 pageUp / pageDown 的时候改变的步⻓.
sliderPosition 滑动条显⽰的 初始位置
tracking 外观是否会跟踪数值变化.
默认值为 true. ⼀般不需要修改.
orientation 滑动条的⽅向是⽔平还是垂直
invertedAppearance 是否要翻转滑动条的⽅向
tickPosition 刻度的位置.
tickInterval 刻度的密集程度.

3. 核心信号

属性 说明
valueChanged(int) 数值改变时触发
rangeChanged(int, int) 范围变化时触发

二、QSlider的使用(代码示例)

1. 调整窗口大小

  1. 在界面中创建两个滑动条,一个是水平的一个垂直的
    在这里插入图片描述
  2. 将垂直的滑动条勾选
    在这里插入图片描述
  3. 在构造函数中编写两个滑动条的初始化
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    ui->horizontalSlider->setMinimum(100);
    ui->horizontalSlider->setMaximum(2000);
    ui->horizontalSlider->setValue(800);
    ui->horizontalSlider->setSingleStep(50);
    ui->verticalSlider->setMinimum(100);
    ui->verticalSlider->setMaximum(2000);
    ui->verticalSlider->setValue(800);
    ui->verticalSlider->setSingleStep(50);
}
  1. 点击滚动条生成槽函数,选择如下图所示
    在这里插入图片描述
  2. 编写上述槽函数
void Widget::on_horizontalSlider_valueChanged(int value)
{
    //获取界面的坐标
    const QRect& rect = this->geometry();
    //设置界面随滚动条变化
    this->setGeometry(rect.x(),rect.y(),value,rect.height());
}

void Widget::on_verticalSlider_valueChanged(int value)
{
    const QRect& rect = this->geometry();
    this->setGeometry(rect.x(),rect.y(),rect.width(),value);
}
  1. 运行代码,查看结果,随着滑动条的滚动窗口随着改变
    在这里插入图片描述

2. 自定义快捷键调整滑动条位置

设置"-“减小value,设置”+"增加value
默认情况下滑动条可以通过 方向键 或者 pageUp / pageDown 调整大小

1.在界面上创建滑动条和label
在这里插入图片描述
2. 在构造函数中初始化滑动条

Widget::Widget(QWidget *parent)
 : QWidget(parent)
 , ui(new Ui::Widget)
{
	 ui->setupUi(this);
	 ui->label->setText("");
	 ui->horizontalSlider->setMinimum(0);
	 ui->horizontalSlider->setMaximum(100);
	 ui->horizontalSlider->setSingleStep(10);
	 ui->horizontalSlider->setValue(0);
}
  1. 创建滑动条槽函数,随着改变把当前值打印到label上
void Widget::on_horizontalSlider_valueChanged(int value)
{
    ui->label->setText("当前值:"+QString::number(value));
}
  1. 增加快捷键,使用QShortCut类设置快捷键快捷键触发时, 会发出 QShortcut::activated 信号, 连接到自定义的槽函数

在这里插入图片描述

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    ui->label->setText("当前值:0");
    ui->horizontalSlider->setMinimum(0);
    ui->horizontalSlider->setMaximum(100);
    ui->horizontalSlider->setSingleStep(5);
    ui->horizontalSlider->setValue(0);


    //使用快捷键,要用到QShortcut类
    //需要两个快捷键,-减少+增加(=和+是同一个)
    QShortcut* shortcut1=new QShortcut(this);
    shortcut1->setKey(QKeySequence("-"));
    QShortcut* shortcut2=new QShortcut(this);
    shortcut2->setKey(QKeySequence("="));

    //使用信号槽,感知快捷键被按下
    connect(shortcut1,&QShortcut::activated,this,&Widget::subValue);
    connect(shortcut2,&QShortcut::activated,this,&Widget::addValue);
}

  1. 运行代码,查看结果
    在这里插入图片描述

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到