首页 > 其他分享 >qt实现三原色滑动条变色

qt实现三原色滑动条变色

时间:2024-09-02 16:21:57浏览次数:12  
标签:qt number value ui QString hsgreen 滑动 三原色 hsred

在qt中有这样一个控件:

就是这个Horizontal Slider他的作用相信大家都知道了,也就是通过滑动来改变数值。今天我们就使用这个控件实现一个三原色滑动变色。

实现效果:

1.创建UI界面 

这个就不用多说了,这个大家就按照我的这个去创建就好了。

2.编写代码

首先我们要初始话我们的属性:

  //初始化红色滑动条
    ui->hsred->setMaximum(255);
    ui->hsred->setMinimum(0);
    ui->hsred->setSingleStep(1);
    ui->hsred->setPageStep(10);
    ui->hsred->setOrientation(Qt::Horizontal);
    //初始化绿色
    ui->hsgreen->setMaximum(255);
    ui->hsgreen->setMinimum(0);
    ui->hsgreen->setSingleStep(1);
    ui->hsgreen->setPageStep(10);
    ui->hsgreen->setOrientation(Qt::Horizontal);
    //初始化蓝色
    ui->hsblue->setMaximum(255);
    ui->hsblue->setMinimum(0);
    ui->hsblue->setSingleStep(1);
    ui->hsblue->setPageStep(10);
    ui->hsblue->setOrientation(Qt::Horizontal);

    //设置背景色
    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);
    ui->legreen->setText(green);
    ui->leblue->setText(blue);
    QString style = "background-color:rgb("+red+","+green+","+blue+");";
    ui->lineEdit->setStyleSheet(style);

来讲几个知识点:

//初始化红色滑动条
    ui->hsred->setMaximum(255);//这个 是设置滑动条的上限
    ui->hsred->setMinimum(0);//这个是设置活动条的下限
    ui->hsred->setSingleStep(1);//这个是设置步长
    ui->hsred->setPageStep(10);//这个是你点击的时候滑动条一次增加的量
    ui->hsred->setOrientation(Qt::Horizontal); // 设置滑动条方向为水平 

讲完这个,就开始编写我们的槽函数了

3.槽函数的编写

在ui界面中选中滑动条右键----->转到槽,然后开始敲代码


void Widget::on_hsgreen_valueChanged(int value)
{
    QString red = QString::number(ui->hsred->value());
    QString green = QString::number(ui->hsgreen->value());
    QString blue = QString::number(ui->hsblue->value());

    ui->legreen->setText(green);
    QString style = "background-color:rgb("+red+","+green+","+blue+");";
    ui->lineEdit->setStyleSheet(style);
}

好了,就是如此简单,大家快去试试吧

!!!!!!!!!!!!!!!!!!!!!!!

下课!!!!!! 

忘了 还有源码:

#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->setSingleStep(1);
    ui->hsred->setPageStep(10);
    ui->hsred->setOrientation(Qt::Horizontal);
    //初始化绿色
    ui->hsgreen->setMaximum(255);
    ui->hsgreen->setMinimum(0);
    ui->hsgreen->setSingleStep(1);
    ui->hsgreen->setPageStep(10);
    ui->hsgreen->setOrientation(Qt::Horizontal);
    //初始化蓝色
    ui->hsblue->setMaximum(255);
    ui->hsblue->setMinimum(0);
    ui->hsblue->setSingleStep(1);
    ui->hsblue->setPageStep(10);
    ui->hsblue->setOrientation(Qt::Horizontal);

    //设置背景色
    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);
    ui->legreen->setText(green);
    ui->leblue->setText(blue);
    QString style = "background-color:rgb("+red+","+green+","+blue+");";
    ui->lineEdit->setStyleSheet(style);





}

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

void Widget::on_hsred_valueChanged(int 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);
    QString style = "background-color:rgb("+red+","+green+","+blue+");";
    ui->lineEdit->setStyleSheet(style);
}


void Widget::on_hsgreen_valueChanged(int value)
{
    QString red = QString::number(ui->hsred->value());
    QString green = QString::number(ui->hsgreen->value());
    QString blue = QString::number(ui->hsblue->value());

    ui->legreen->setText(green);
    QString style = "background-color:rgb("+red+","+green+","+blue+");";
    ui->lineEdit->setStyleSheet(style);
}


void Widget::on_hsblue_valueChanged(int value)
{
    QString red = QString::number(ui->hsred->value());
    QString green = QString::number(ui->hsgreen->value());
    QString blue = QString::number(ui->hsblue->value());

    ui->leblue->setText(blue);
    QString style = "background-color:rgb("+red+","+green+","+blue+");";
    ui->lineEdit->setStyleSheet(style);
}

标签:qt,number,value,ui,QString,hsgreen,滑动,三原色,hsred
From: https://blog.csdn.net/weixin_70293633/article/details/141783843

相关文章

  • 滑动窗口系列(不定长滑动窗口长度) 9/2
    一、将x减到0的最小操作数给你一个整数数组 nums 和一个整数 x 。每一次操作时,你应当移除数组 nums 最左边或最右边的元素,然后从 x 中减去该元素的值。请注意,需要 修改 数组以供接下来的操作使用。如果可以将 x 恰好 减到 0 ,返回 最小操作数 ;否则,返回 -1......
  • 【QTTabBar】手把手教你QTTabBar命令栏js脚本的自定义开发与实战
    本帖最后由二零一八小王子于2024-8-3121:45编辑<ignore_js_op>众所周知,360压缩有一个解压功能,也就是打开压缩包后点击“一键解压”就可解压完成并且打开目标文件夹。今天这里要实现的是在qttabbar的命令按钮,也就是上面的工具栏处,使用js编写一个一键解压功能。也就是对于一个......
  • 【编程规范具体案例(基于Qt、微软、谷歌和AUTOSAR C++14 参考)】 C++ 编码规范 之程序设
    目录标题基本元素3.1类和结构体3.1.1\[必须]使用恰当的访问修饰符来管理类成员的可见性3.1.2\[必须]在类中合理使用默认的特殊成员函数3.1.3\[必须]提供清晰且尽可能一致的类接口3.1.4\[建议]优先使用初始化列表来初始化类成员3.1.5\[建议]使用抽......
  • QT实战项目之音乐播放器
    项目效果演示myMusicShow项目概述在本QT音乐播放器实战项目中,开发环境使用的是QTCreator5.14版本。该项目实现了音乐播放器的基本功能,例如开始播放、停止播放、下一首播放、上一首播放、调节音量、调节倍速、设置音乐播放模式等。同时还具备搜索功能,通过搜索歌曲名字或......
  • 【Qt 事件】—— 详解Qt事件处理
    目录 (一)事件介绍 (二)事件的处理(三)按键事件 3.1 单个按键3.2组合按键(四)鼠标事件4.1鼠标单击事件4.2鼠标释放事件 4.3鼠标双击事件4.4鼠标移动事件 4.5滚轮事件 (五) 定时器5.1QTimerEvent类5.2QTimer类(六)事件分发器 6.1概述6.2事件分发器工作......
  • ESP32-C3在MQTT访问时出现“Last error code reported from esp-tls: 0x8001”和问题
    接前一篇文章:ESP32-C3在MQTT访问时出现“Lasterrorcodereportedfromesp-tls:0x8001”和问题的分析(2)上一回讲解了所遇问题log中的“esp-tls:couldn'tgethostnamefor:iot-emqx-pre.nanshe-tech.com:getaddrinfo()returns202,addrinfo=0x0”,再来回顾一下。这一......
  • Qt/QML学习-Calendar
    QML学习Calendar例程视频讲解代码main.qmlimportQtQuick2.15importQtQuick.Window2.15importQtQuick.Controls1.4importQtQuick.Controls.Styles1.4importQtQuick.Controls2.15Window{width:640height:480visible:truetitle:qs......
  • buildroot linux 添加QT自动启动桌面
    /etc/init.d/S99QTDesktop#!/bin/sh##Start/stopQTdesktop#exportXDG_RUNTIME_DIR=/usr/qt-armhf/lib#配置tslibexportTSLIB_TSDEVICE=/dev/input/event1exportTSLIB_CALIBFILE=/etc/pointercalexportTSLIB_CONFFILE=/etc/ts.confexportTSLIB_PLUGINDIR=/usr/lib/tse......
  • 【每日一题】LeetCode 1343.大小为K且平均值大于等于阈值的子数组数目(数组、滑动窗口)
    【每日一题】LeetCode1343.大小为K且平均值大于等于阈值的子数组数目(数组、滑动窗口)题目描述给定一个整数数组arr和两个整数k和threshold,要求找出数组中长度为k且平均值大于等于threshold的子数组的数量。输入格式arr:一个整数数组。k:子数组的长度。thres......
  • Qt模态对话框与非模态对话框
    前言在Qt中,模态对话框和非模态对话框是两种常见的对话框类型,它们的主要区别在于用户与应用程序的交互方式。正文对话框就是指QDialog嘛。模态对话框(ModalDialog)定义:模态对话框是指在弹出对话框期间,用户无法与应用程序的其他部分进行交互。用户必须先处理完对话......