用到了QSlider、QLCDNumber、QRadioButton、QProgressBar、QDial、QTextEdit,QScrollBar;
QTextEdit根据滑动条改变颜色,其他控件,改变数值的时候进度条进度跟随变化,QRadioButton改变QLCDNumber显示进制数。
#include "widget.h"
#include "ui_widget.h"
#include <QSlider>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
connect(ui->horiSliderBlue,&QSlider::valueChanged, this, &Widget::on_horiSliderRed_valueChanged);
connect(ui->horiSliderGreen,&QSlider::valueChanged, this, &Widget::on_horiSliderRed_valueChanged);
connect(ui->horiScrollBarAlpha,&QSlider::valueChanged, this, &Widget::on_horiSliderRed_valueChanged);
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_horiSliderRed_valueChanged(int value)
{
Q_UNUSED(value);
QColor color;
int red = ui->horiSliderRed->value();
int blue = ui->horiSliderBlue->value();
int green = ui->horiSliderGreen->value();
int alpha = ui->horiScrollBarAlpha->value();
color.setRgb(red,green,blue,alpha);
QPalette pal = ui->textEdit->palette();//调色板
pal.setColor(QPalette::Base,color);//设置底色
ui->textEdit->setPalette(pal);
}
void Widget::on_dial_valueChanged(int value)
{
ui->lcdNumber->display(value);
ui->progressBar->setValue(value);
}
void Widget::on_raBtnDec_clicked()
{
ui->lcdNumber->setDigitCount(3);
ui->lcdNumber->setDecMode();
}
void Widget::on_raBtnBin_clicked()
{
ui->lcdNumber->setDigitCount(8);
ui->lcdNumber->setBinMode();
}
void Widget::on_raBtnHex_clicked()
{
ui->lcdNumber->setDigitCount(3);
ui->lcdNumber->setHexMode();
}
void Widget::on_verticalScrollBar_valueChanged(int value)
{
ui->progressBar_2->setValue(value);
}
void Widget::on_verticalSlider_valueChanged(int value)
{
ui->progressBar_2->setValue(value);
}
void Widget::on_progressBar_2_valueChanged(int value)
{
ui->verticalScrollBar->setValue(value);
ui->verticalSlider->setValue(value);
}
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
private slots:
void on_horiSliderRed_valueChanged(int value);
void on_dial_valueChanged(int value);
void on_raBtnDec_clicked();
void on_raBtnBin_clicked();
void on_raBtnHex_clicked();
void on_verticalScrollBar_valueChanged(int value);
void on_verticalSlider_valueChanged(int value);
void on_progressBar_2_valueChanged(int value);
private:
Ui::Widget *ui;
};
#endif // WIDGET_H