Qt5.9 C++开发指南 4.3 其他输入数值组件和显示组件

用到了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

猜你喜欢

转载自blog.csdn.net/weixin_43387612/article/details/107208463