Qt常用控件之QDial和QSlider

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的安装包可以私信我,你们的支持是博主坚持创作的动力!💪💪

相关推荐
无限进步_2 小时前
203. 移除链表元素 - 题解与详细分析
c语言·开发语言·数据结构·git·链表·github·visual studio
轩情吖2 小时前
Qt多元素控件之QListWidget
开发语言·前端·c++·qt·控件·qlistwidget·桌面级
Getgit2 小时前
在 VS Code 中配置 PHP 开发环境完整指南
开发语言·vscode·php·intellij-idea·database
无风听海2 小时前
C# 中的 LinkedList
开发语言·c#
测试_AI_一辰2 小时前
Agent & RAG 测试工程 02:RAG 从最小闭环到可信
开发语言·前端·人工智能·github·ai编程
tudficdew2 小时前
C++中的策略模式实战
开发语言·c++·算法
naruto_lnq2 小时前
实时语音处理库
开发语言·c++·算法
程序员良辰2 小时前
JDK 环境变量的核心作用 ? 如果使用 IDEA 运行程序,是否可以不配置环境变量 ?
java·开发语言·intellij-idea
独自破碎E2 小时前
【数组】分糖果问题
java·开发语言·算法