Qt常用控件之QDial
🌟🌟hello,各位读者大大们你们好呀🌟🌟
🚀🚀系列专栏:【Qt的学习】
📝📝本篇内容:QDial简介;QDial的使用;QSlider简介;使用QSlider调整窗口大小;使用快捷键控制QSlider
⬆⬆⬆⬆上一篇:Qt多元素控件之QListWidget
💖💖作者简介:轩情吖,请多多指教(>> •̀֊•́ ) ̖́-
1.QDial简介
QDail是一个旋钮控件,可以使用鼠标拖动旋钮旋转
它的使用比较简单,直接介绍它的一些使用函数和信号
| 函数声明 | 函数说明 |
|---|---|
| void setValue(int) | 设置它当前的值 |
| void setMaximum(int) | 设置最大值 |
| void setMinimum(int) | 设置最小值 |
| void setSingleStep(int) | 按下⽅向键的时候改变的步⻓ |
| void setPageStep(int) | 按下 pageUp / pageDown 的时候改变的步⻓ |
| void setSliderPosition(int) | 界⾯上旋钮显示的初始位置,其实和setValue一样 |
| void setTracking(bool enable) | 外观是否会跟踪数值变化,默认值为 true,⼀般不需要修改 |
| void setWrapping(bool on) | 是否允许循环调整,即数值如果超过最⼤值, 是否允许回到最⼩值(调整过程能否 "套圈") |
| bool notchesVisible() const | 是否显示刻度线 |
| void setNotchTarget(double target) | 刻度线之间的相对位置;数字越⼤, 刻度线越稀疏 |
| 信号声明 | 信号说明 |
|---|---|
| void QAbstractSlider::valueChanged(int value) | 数值改变时触发 |
| void QAbstractSlider::rangeChanged(int min, int max) | 范围变化时触发 |
2.QDial的使用
我们可以通过它来实现一个小功能,通过旋转来调节我们的不透明度(1是完全不透明,0是完全透明),这就涉及到前面的知识了,也就是Widget的函数setWindowOpacity
3.QSlider简介
QSlider是滑动条,它其实和QDial同宗同源,它们都是继承于QAbstractSlider,所以说功能都类似,很多函数也是一样的
| 函数声明 | 函数说明 |
|---|---|
| void setValue(int) | 设置它当前的值 |
| void setMaximum(int) | 设置最大值 |
| void setMinimum(int) | 设置最小值 |
| void setSingleStep(int) | 按下⽅向键的时候改变的步⻓ |
| void setPageStep(int) | 按下 pageUp / pageDown 的时候改变的步⻓ |
| void setSliderPosition(int) | 界⾯上旋钮显示的初始位置,其实和setValue一样 |
| void setTracking(bool enable) | 外观是否会跟踪数值变化,默认值为 true,⼀般不需要修改 |
| void setOrientation(Qt::Orientation) | 设置滑动条的⽅向是⽔平还是垂直,Qt::Horizontal和Qt::Vertical |
| void setInvertedAppearance(bool) | 设置是否要翻转滑动条的⽅向 |
| void setTickPosition(QSlider::TickPosition position) | 设置刻度的位置 |
| void setTickInterval(int ti) | 设置刻度的密集程度 |
| 信号声明 | 信号说明 |
|---|---|
| void QAbstractSlider::valueChanged(int value) | 数值改变时触发 |
| void QAbstractSlider::rangeChanged(int min, int max) | 范围变化时触发 |
4.使用QSlider调整窗口大小
我们可以使用两个滑动条来调整窗口的长度和高度,两个滑动条分别是水平滑动条和垂直滑动条
,水平滑动条调整长度,垂直滑动调整高度。
在代码中还设置了方向键的步长,我们也可以通过方向键来调整
5.使用快捷键控制QSlider
我们可以设置两个快捷键来控制滑动条的左滑和右滑,例如我们就使用键盘上的"+" "-",但是我们的+是和"="在一起的,使用"+"时需要同时摁shift,因此为了方便,这边直接使用"="
在图形化界面使用一个滑动条和一个标签,标签负责显示当前的值
cpp
#include "widget.h"
#include "ui_widget.h"
#include <QShortcut>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
//创建两个快捷键+-来控制滑动条
QShortcut* cut1=new QShortcut(this);
QShortcut* cut2=new QShortcut(this);
cut1->setKey(QKeySequence("-"));
cut2->setKey(QKeySequence("="));
//将快捷键和滑动条的滑动关联上
connect(cut1,&QShortcut::activated,this,&Widget::subValue);
connect(cut2,&QShortcut::activated,this,&Widget::addValue);
}
Widget::~Widget()
{
delete ui;
}
void Widget::subValue()
{
//对滑动条进行减
int value=ui->horizontalSlider->value();
if(value<=ui->horizontalSlider->minimum())
{
return;
}
ui->horizontalSlider->setValue(value-5);
}
void Widget::addValue()
{
//对滑动条进行加
int value=ui->horizontalSlider->value();
if(value>=ui->horizontalSlider->maximum())
{
return;
}
ui->horizontalSlider->setValue(value+5);
}
void Widget::on_horizontalSlider_valueChanged(int value)
{
QString str("当前的值为:");
str+=QString::number(value);
ui->label->setText(str);
}
创建两个快捷键控件,并分别进行信号和槽的绑定,信号是activited,当用户输入快捷键的按键序列时,会发出此信号。当触发信号后,会调用增加滑动条数值或减少滑动条数值的函数
上面的是使用快捷键操作的
🌸🌸Qt常用控件之QDial和QSlider大概就讲到这里啦,博主后续会继续更新更多Qt的相关知识,干货满满,如果觉得博主写的还不错的话,希望各位小伙伴不要吝啬手中的三连哦!如有小伙伴需要Qt的安装包可以私信我,你们的支持是博主坚持创作的动力!💪💪









