Qt QSlider滑动条控件

文章目录

  • 1 属性和方法
    • 1.1 值
    • 1.2 方向
    • 1.3 步长
    • 1.4 信号和槽
  • 2 实例
    • 2.1 布局
    • 2.2 代码实现

QSlider是滑动条控件,滑动条可以在一个范围内拖动,并将其位置转换为整数

最常见的应用就是视频播放器中的进度条

1 属性和方法

QSlider继承自QAbstractSlider,它的绝大多数属性都是从QAbstractSlider继承而来的。

QSlider有很多属性,完整的可查看帮助文档。这里仅列出常用的属性和方法

1.1 值

滑动条和值相关的属性包括:当前值、最大值、最小值

// 获取和设置当前值
int value() const;
void serValue(int);

// 获取和设置最大值
int maximum() const;
void setMaximum(int);

// 获取和设置最小值
int minimum() const;
void setMinimum(int);

// 一次设置最大值和最小值
void serRange(int min, int max);

1.2 方向

Qt中滑动条有水平滑动条和垂直滑动条之分

只需修改QSliderorientation属性,就可以滑动条的外观即可变为水平或者垂直的

// 获取和设置滑动条
Qt::Orientation orientation() const;
void setOrientation(Qt::Orientation);

1.3 步长

步长是指滑动条一次增加或减少的值

这里又包括两个步长:

  • SingleStep:是指接键盘的左右箭头(←/→)时的步长
  • pageStep:是指点击滑块两侧时的步长
// 获取和设置singleStep
int singleStep() const;
void setSingleStep(int);

// 获取和设置pageStep
int pageStep() const;
void serPageStep(int);

1.4 信号和槽

QSlider常用的信号,如下

// 当滑动被按下时发射该信号
void slidePressed();

// 当滑块移动时发射该信号
void sliderMoved(int value);

// 当滑块释放时发射该信号
void sliderReleased();

// 当滑动条的值改变时,发射该信号
void valueChanged(int value);

2 实例

三个滑动条,分别用来调节RGB三个颜色的值,并显示到左侧各自的文本框中

并且将RGB这三个颜色的组合,设置为上面的文本框的背景颜色

在这里插入图片描述

2.1 布局

在Ul设计师界面,拖拽对应的控件,修改显示的文字、控件的name,然后完成布局

在这里插入图片描述

2.2 代码实现

// 在Widget.cpp中

#include "widget.h"

#include "ui_widget.h"

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

    // 初始化红色滑动条
    ui->hsRed->setMaximum(255);
    ui->hsRed->setMinimum(0);
    // ui->hsRed->setRange(0, 255);
    ui->hsRed->setSingleStep(1);
    ui->hsRed->setPageStep(10);
    ui->hsRed->setOrientation(Qt::Horizontal);

    // 初始化绿色滑动条
    ui->hsGreen->setMaximum(255);
    ui->hsGreen->setMinimum(0);
    ui->hsGreen->setSingleStep(5);
    ui->hsGreen->setPageStep(20);

    // 初始化蓝色滑动条
    ui->hsBlue->setMaximum(255);
    ui->hsBlue->setMinimum(0);
    ui->hsBlue->setSingleStep(10);
    ui->hsBlue->setPageStep(50);

    // 初始化 设置文本框的背景色
    // background-color: rgb(255, 0, 0);
    QString style = "background-color: rgb(0, 0, 0);";
    ui->lineEdit->setStyleSheet(style);

    // 初始化LineEdit
    ui->leRed->setText(QString::number(ui->hsRed->value()));
    ui->leGreen->setText(QString::number(ui->hsGreen->value()));
    ui->leBlue->setText(QString::number(ui->hsBlue->value()));
}

Widget::~Widget() {
    delete ui;
}

void Widget::on_hsRed_valueChanged(int value) {
    QString red = QString::number(value);
    // QString red = QString::number(ui->hsRed->value());
    QString green = QString::number(ui->hsGreen->value());
    QString blue = QString::number(ui->hsBlue->value());
    ui->leRed->setText(red);

    // 设置文本框的背景色
    // background-color: rgb(255, 0, 0);
    QString style =
        "background-color: rgb(" + red + "," + green + "," + blue + ");";
    ui->lineEdit->setStyleSheet(style);
}

void Widget::on_hsGreen_valueChanged(int value) {
    QString green = QString::number(value);
    QString red = QString::number(ui->hsRed->value());
    QString blue = QString::number(ui->hsBlue->value());
    ui->leGreen->setText(green);
    // 设置文本框的背景色
    // background-color: rgb(255, 0, 0);
    QString style =
        "background-color: rgb(" + red + "," + green + "," + blue + ");";
    ui->lineEdit->setStyleSheet(style);
}

void Widget::on_hsBlue_valueChanged(int value) {
    QString blue = QString::number(value);
    QString red = QString::number(ui->hsRed->value());
    QString green = QString::number(ui->hsGreen->value());
    ui->leBlue->setText(blue);
    // 设置文本框的背景色
    // background-color: rgb(255, 0, 0);
    QString style =
        "background-color: rgb(" + red + "," + green + "," + blue + ");";
    ui->lineEdit->setStyleSheet(style);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/324068.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux中文件名修改的多种方法

找一个不算漂亮的普通女孩,一起柴米油盐,一起日出日落,一起田间地头,一起春花冬雪!要一个不算大的小房子,生两个健康可爱的宝宝,这样就很好。。。。。。 简介: 在Linux系统中&#x…

使用Python+pygame实现贪吃蛇小游戏

使用Pythonpygame贪吃蛇小游戏 使用第三方库pygame,关于Python中pygame游戏模块的安装使用可见 https://blog.csdn.net/cnds123/article/details/119514520 给出两种实现。 第一种 运行效果如下: 游戏源码如下: import pygame import sy…

排序算法之八:计数排序

1.计数排序思想 计数排序,顾名思义就是计算数据的个数 计数排序又称非比较排序 思想:计数排序又称为鸽巢原理,是对哈希直接定址法的变形应用。 操作步骤: 统计相同元素出现次数 根据统计的结果将序列回收到原来的序列中 计数…

freetos day1

作业:使用计数型信号量设计:生产者和消费者模型 总结今天学习的API函数,写出函数参数和返回值的意思,并且说明函数功能 1 2 3

【数据结构】C语言实现共享栈

共享栈的C语言实现 导言一、共享栈1.1 共享栈的初始化1.2 共享栈的判空1.3 共享栈的入栈1.3.1 空指针1.3.2 满栈1.3.3 入栈空间错误1.3.4 正常入栈1.3.5 小结 1.4 共享栈的查找1.5 共享栈的出栈1.6 共享栈的销毁 二、共享栈的实现演示结语 导言 大家好,很高兴又和大…

文件上传进阶绕过(二)4个技巧和靶场实战

★★免责声明★★ 文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将信息做其他用途,由Ta承担全部法律及连带责任,文章作者不承担任何法律及连带责任。 0、环境准备 请移步《文件上传靶场实战:upl…

「会议推荐」食品饮料行业数字化、智能化转型升级高质量发展论坛

“2024第十二届国际生物发酵产品与技术装备展览会(济南)”将于2024年3月5-7日在山东国际会展中心(济南市日照路1号)举办。同期中国生物发酵产业协会、山东省轻工机械协会、山东省食品工业协会联合举办“2024食品饮料行业数字化、智…

Win10提示找不到mfc71ud.dll文件,程序无法运行,的解决办法,亲测有效

mfc71ud.dll是Windows操作系统中的一个动态链接库文件,由Microsoft公司开发,属于Microsoft Foundation Class (MFC)库的一部分。"ud"后缀表示这是一个Unicode Debug版本,主要用于支持程序开发和测试。 这个文件主要被用于运行各种…

C++--引用

一.引用的定义🍗 引用是已定义的变量的别名。 例如将data作为value的引用(别名),则可以随意使用data或value来表示该变量。 引用有何作用呢? 其主要作用是作为函数的形参(和函数的返回值)。这样 函数的形参就是实参本身,而不是其副本。这样除指针外,引用也为函数处…

命名空间 “Eigen“ 没有成员 “SelfAdjointEigenSolver“

代码中用到SelfAdjointEigenSolver 结果报错&#xff1a;报错实在windows10条件下发生的。 查找资料&#xff0c;最后还是要定位到官方文档。 计算自伴随矩阵的特征值和特征向量。 这是在特征值模块中定义的。 添加如下引用即可解决&#xff0c;请点赞关注。 #include <…

ssm+vue的物流配送人员车辆调度管理系统的设计与实现(有报告)。Javaee项目,ssm vue前后端分离项项目。

演示视频&#xff1a; ssmvue的物流配送人员车辆调度管理系统的设计与实现&#xff08;有报告&#xff09;。Javaee项目&#xff0c;ssm vue前后端分离项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&…

腾讯云服务器定价_云服务器价格_云服务器计费模式

腾讯云服务器租用价格表&#xff1a;轻量应用服务器2核2G3M价格62元一年、2核2G4M价格118元一年&#xff0c;540元三年、2核4G5M带宽218元一年&#xff0c;2核4G5M带宽756元三年、轻量4核8G12M服务器446元一年、646元15个月&#xff0c;云服务器CVM S5实例2核2G配置280.8元一年…

一文搞懂系列——Linux C线程池技术

背景 最近在走读诊断项目代码时&#xff0c;发现其用到了线程池技术&#xff0c;感觉耳目一新。以前基本只是听过线程池&#xff0c;但是并没有实际应用。对它有一丝的好奇&#xff0c;于是趁这个机会深入了解一下线程池的实现原理。 线程池的优点 线程池出现的背景&#xf…

腾讯云服务器购买指南,2024更新购买步骤

腾讯云服务器购买流程很简单&#xff0c;有两种购买方式&#xff0c;直接在官方活动上购买比较划算&#xff0c;在云服务器CVM或轻量应用服务器页面自定义购买价格比较贵&#xff0c;但是自定义购买云服务器CPU内存带宽配置选择范围广&#xff0c;活动上购买只能选择固定的活动…

2024年学鸿蒙开发就业前景怎么样?

随着科技的不断进步&#xff0c;鸿蒙系统作为华为自主研发的操作系统&#xff0c;逐渐引起了人们的关注。 2024年&#xff0c;鸿蒙开发就业前景如何&#xff1f; 对于那些对鸿蒙开发感兴趣并希望在这一领域寻找职业发展的人来说&#xff0c;这是一个非常重要的问题。 首先&a…

buuctf-Misc 题目解答分解118-120

118.[INSHack2017]sanity 打开压缩包就是一个md 文件 typora 打开 发现flag INSA{Youre_sane_Good_for_you} 119.粽子的来历 解压压缩包 &#xff0c;得到文件夹如下 用010 editor 打开 我是A.doc 这个有些可以 都改成FF 保存 然后再次打开 docx 文件就发现了屈原的诗 其他b…

PattPatel-“Introduction to Computing Systems“(4)期末样卷题目解析:C语言递归

C语言的递归我觉得最主要的还是要把Patt&Patel的部分好好理解下&#xff08;因为有和硬件结合的部分&#xff09;&#xff0c;但因为今天就考试&#xff08;来不及做这样的事情&#xff09;&#xff0c;先把之前模拟卷的题目给尝试弄明白&#xff0c;然后考完试之后继续学习…

《新课程教学》(电子版)是正规期刊吗?能评职称吗?

《新课程教学》&#xff08;电子版&#xff09;主要出版内容为学科教学理论、学科教学实践经验和成果&#xff0c;主要读者对象为中小学教师&#xff0c;期刊设卷首语、名家讲堂、课程与教学、教学实践、考试评价、教育信息化、教学琐谈、教育管理、教师心语、一线课堂、重温经…

StarRocks Awards 2023 年度贡献人物

2023 年行将结束。这一年&#xff0c;StarRocks 继续全方位大步向前迈进&#xff0c;在 300 贡献者的辛勤建设下&#xff0c;社区先后发布了 50 版本&#xff0c;并完成了从全场景 OLAP 到云原生湖仓的进化。 贡献者们的每一行代码、每一场布道&#xff0c;推动着 StarRocks 社…

c语言学习总结———编译和链接

再次来做一下学习总结&#xff0c;今天我们总结一下关于编译和链接的学习吧&#xff01; 1. 翻译环境和运⾏环境 在ANSI C的任何⼀种实现中&#xff0c;存在两个不同的环境。 第1种是翻译环境&#xff0c;在这个环境中源代码被转换为可执⾏的机器指令。 第2种是执⾏环境&…