Qt 实例9 QColor应用:通过数值进行颜色设置 | 您所在的位置:网站首页 › 添加数值调节按钮 › Qt 实例9 QColor应用:通过数值进行颜色设置 |
Qt中,通过QSlider进行拖动、QLineEdit进行数值设置,联动设置QColor颜色值。并通过QTextEdit文本框进行设置颜色的显示。 1、创建工程并进行界面设计。创建基于QWidget基类的Qt界面应用程序,并在主界面添加相关控件如下: 界面控件依次为:QLabel、QSlider、QLineEdit、QLabel、QSlider、QLineEdit、QLabel、QSlider、QLineEdit、QTextEdit。 2、创建创建槽函数及类私有函数 .h头文件创建槽函数及类私有函数: #ifndef WIDGET_H #define WIDGET_H #include namespace Ui { class Widget; } class Widget : public QWidget { Q_OBJECT public: explicit Widget(QWidget *parent = 0); ~Widget(); protected slots: void sliderValueChanged(int); void lineEditTextChanged(QString); private: Ui::Widget *ui; }; #endif // WIDGET_H.cpp源文件构造函数内绑定槽函数,并实现槽函数 #include "widget.h" #include "ui_widget.h" #include Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui->setupUi(this); ui->horizontalSlider_alpha->setValue(255); QColor color; color.setRgb(0,0,0,255); QPalette palette = ui->textEdit->palette(); palette.setColor(QPalette::Base,color); ui->textEdit->setPalette(palette); connect(ui->horizontalSlider_red,SIGNAL(valueChanged(int)),this,SLOT(sliderValueChanged(int))); connect(ui->horizontalSlider_green,SIGNAL(valueChanged(int)),this,SLOT(sliderValueChanged(int))); connect(ui->horizontalSlider_blue,SIGNAL(valueChanged(int)),this,SLOT(sliderValueChanged(int))); connect(ui->horizontalSlider_alpha,SIGNAL(valueChanged(int)),this,SLOT(sliderValueChanged(int))); connect(ui->lineEdit_red,SIGNAL(textChanged(QString)),this,SLOT(lineEditTextChanged(QString))); connect(ui->lineEdit_green,SIGNAL(textChanged(QString)),this,SLOT(lineEditTextChanged(QString))); connect(ui->lineEdit_blue,SIGNAL(textChanged(QString)),this,SLOT(lineEditTextChanged(QString))); connect(ui->lineEdit_alpha,SIGNAL(textChanged(QString)),this,SLOT(lineEditTextChanged(QString))); } Widget::~Widget() { delete ui; } void Widget::sliderValueChanged(int value) { int Red = ui->horizontalSlider_red->value(); ui->lineEdit_red->setText(QString::number(Red)); int Green = ui->horizontalSlider_green->value(); ui->lineEdit_green->setText(QString::number(Green)); int Blue = ui->horizontalSlider_blue->value(); ui->lineEdit_blue->setText(QString::number(Blue)); int Alpha = ui->horizontalSlider_alpha->value(); ui->lineEdit_alpha->setText(QString::number(Alpha)); QColor color; color.setRgb(Red,Green,Blue,Alpha); QPalette palette = ui->textEdit->palette(); palette.setColor(QPalette::Base,color); ui->textEdit->setPalette(palette); } void Widget::lineEditTextChanged(QString text) { int Red = ui->lineEdit_red->text().toInt(); ui->horizontalSlider_red->setValue(Red); int Green = ui->lineEdit_green->text().toInt(); ui->horizontalSlider_green->setValue(Green); int Blue = ui->lineEdit_blue->text().toInt(); ui->horizontalSlider_blue->setValue(Blue); int Alpha = ui->lineEdit_alpha->text().toInt(); ui->horizontalSlider_alpha->setValue(Alpha); QColor color; color.setRgb(Red,Green,Blue,Alpha); QPalette palette = ui->textEdit->palette(); palette.setColor(QPalette::Base,color); ui->textEdit->setPalette(palette); }3、点击【运行】或【Ctrl+R】运行程序。可以通过拖动QSlider或在QLineEdit控件输入数值进行颜色设置。 后续公众号会发布系列教程,更多内容请关注公众号:Qt程序猿 |
CopyRight 2018-2019 实验室设备网 版权所有 |