Qt常用控件 | 输入类控件 | Slider的使用及说明
一、QSlider介绍
1. 简介
QSlider是Qt框架中的一个控件,用于实现滑动条的功能。滑动条是用户界面中的常用控件之一,可以通过拖动滑块来选择一个值,或者通过点击滑条上的位置来快速定位。
2. 核心属性
3. 核心信号
属性 | 说明 |
valueChanged(int) | 数值改变时触发 |
rangeChanged(int, int) | 范围变化时触发 |
二、QSlider的使用(代码示例)
1. 调整窗口大小
- 在界面中创建两个滑动条,一个是水平的一个垂直的
- 将垂直的滑动条勾选
- 在构造函数中编写两个滑动条的初始
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); }
4.点击滚动条生成槽函数,选择如下图所示
5.编写上述槽函数
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); }
6.运行代码,查看结果,随着滑动条的滚动窗口随着改变
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); }
- 创建滑动条槽函数,随着改变把当前值打印到label上
void Widget::on_horizontalSlider_valueChanged(int value) { ui->label->setText("当前值:"+QString::number(value)); }
- 增加快捷键,使用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); }
5.运行代码,查看结果