54 lines
1.8 KiB
C++
54 lines
1.8 KiB
C++
#include "ExQSlider.h"
|
|
#include "ui_ExQSlider.h"
|
|
#include <QPalette>
|
|
|
|
ExQSlider::ExQSlider(QWidget *parent) :
|
|
QWidget(parent),
|
|
ui(new Ui::ExQSlider)
|
|
{
|
|
ui->setupUi(this);
|
|
setWindowTitle(QObject::tr("QSlider的用法"));
|
|
|
|
//设置QSlider的最大值为255 (默认范围为0~100)
|
|
ui->sliderRed->setMaximum(255);
|
|
ui->sliderGreen->setMaximum(255);
|
|
ui->sliderBlue->setMaximum(255);
|
|
ui->sliderAlpha->setMaximum(255);
|
|
|
|
//初始化QTextEdit的颜色 (否则默认就是白灰色)
|
|
QColor color;
|
|
color.setRgb(145, 190, 251, 255);
|
|
QPalette palette = ui->textColour->palette();
|
|
palette.setColor(QPalette::Base, color);
|
|
ui->textColour->setPalette(palette);
|
|
|
|
//连接信号与槽,多个信号,对应一个槽函数
|
|
connect(ui->sliderRed, SIGNAL(valueChanged(int)), this, SLOT(onSetClolor(int)));
|
|
connect(ui->sliderGreen, SIGNAL(valueChanged(int)), this, SLOT(onSetClolor(int)));
|
|
connect(ui->sliderBlue, SIGNAL(valueChanged(int)), this, SLOT(onSetClolor(int)));
|
|
connect(ui->sliderAlpha, SIGNAL(valueChanged(int)), this, SLOT(onSetClolor(int)));
|
|
}
|
|
|
|
ExQSlider::~ExQSlider()
|
|
{
|
|
delete ui;
|
|
}
|
|
|
|
void ExQSlider::onSetClolor(int val)
|
|
{
|
|
Q_UNUSED(val)
|
|
|
|
int nRed = ui->sliderRed->value(); //获取红绿蓝(RGB)的Slider的数值
|
|
int nGreen = ui->sliderGreen->value();
|
|
int nBlue = ui->sliderBlue->value();
|
|
int nAlpha = ui->sliderAlpha->value();
|
|
|
|
QColor color;
|
|
color.setRgb(nRed, nGreen, nBlue, nAlpha);
|
|
QPalette palette = ui->textColour->palette(); //获取textColour控件的所有颜色值(调色板)
|
|
palette.setColor(QPalette::Base, color); //设置textColou的某一角色(即控件)的颜色
|
|
ui->textColour->setPalette(palette);
|
|
|
|
ui->labRgbVal->setText(QString("RGB(%1, %2, %3, %4)").arg(nRed).arg(nGreen).arg(nBlue).arg(nAlpha)); //时刻显示RGBa的具体值
|
|
}
|