```cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
#include <QTime>
MainWindow
::MainWindow(QWidget
*parent
) :
QMainWindow(parent
),
ui(new Ui
::MainWindow
)
{
ui
->setupUi(this);
QTime mytime
;
int h
= 0;
int m
= 0;
int ms
= 0;
int mms
= 0;
mytime
.setHMS(h
,m
,ms
,mms
);
qDebug() << h
<< m
<< ms
<< mms
;
QString tmp
= ui
->label
->styleSheet();
qDebug() << tmp
;
QString red
="";
QString green
="";
QString blue
="";
int count
= 0;
QString
::const_iterator cit
= nullptr;
for(cit
= tmp
.begin();cit
!= tmp
.end();cit
++)
{
if(*cit
== "(" && count
== 0)
{
count
++;
continue;
}
else if(*cit
!= "(" && *cit
!= "," && count
==1)
{
red
+= *cit
;
qDebug() << "red" <<red
;
}
else if (*cit
== "," && count
== 1)
{
count
++;
continue;
}
else if (count
==2 && *cit
!= ",")
{
green
+= *cit
;
qDebug() <<"green" << green
;
}
else if(count
== 2 && *cit
==",")
{
count
= 3;
continue;
}
else if(count
== 3 && *cit
!= ")")
{
blue
+= *cit
;
qDebug() <<"blue "<< blue
;
}
else if(count
== 3 && *cit
== ")")
break;
}
ui
->redEdit
->setText(red
);
ui
->greenEdit_2
->setText(green
);
ui
->blueEdit_3
->setText(blue
);
ui
->RED
->setValue(red
.toInt());
ui
->GREEN
->setValue(green
.toInt());
ui
->BLUE
->setValue(blue
.toInt());
connect(ui
->color_1
,&QPushButton
::clicked
,this,&MainWindow
::color_select
);
connect(ui
->color_2
,&QPushButton
::clicked
,this,&MainWindow
::color_select
);
connect(ui
->color_3
,&QPushButton
::clicked
,this,&MainWindow
::color_select
);
connect(ui
->color_4
,&QPushButton
::clicked
,this,&MainWindow
::color_select
);
connect(ui
->color_5
,&QPushButton
::clicked
,this,&MainWindow
::color_select
);
connect(ui
->color_6
,&QPushButton
::clicked
,this,&MainWindow
::color_select
);
connect(ui
->color_7
,&QPushButton
::clicked
,this,&MainWindow
::color_select
);
connect(ui
->color_8
,&QPushButton
::clicked
,this,&MainWindow
::color_select
);
connect(ui
->color_9
,&QPushButton
::clicked
,this,&MainWindow
::color_select
);
}
MainWindow
::~MainWindow()
{
delete ui
;
}
void MainWindow
::color_select()
{
btn
= qobject_cast
<QPushButton
*>(sender());
QString tmp
= btn
->styleSheet();
qDebug() << tmp
;
QString red
="";
QString green
="";
QString blue
="";
int count
= 0;
QString
::const_iterator cit
= nullptr;
for(cit
= tmp
.begin();cit
!= tmp
.end();cit
++)
{
if(*cit
== "(" && count
== 0)
{
count
++;
continue;
}
else if(*cit
!= "(" && *cit
!= "," && count
==1)
{
red
+= *cit
;
qDebug() << "red" <<red
;
}
else if (*cit
== "," && count
== 1)
{
count
++;
continue;
}
else if (count
==2 && *cit
!= ",")
{
green
+= *cit
;
qDebug() <<"green" << green
;
}
else if(count
== 2 && *cit
==",")
{
count
= 3;
continue;
}
else if(count
== 3 && *cit
!= ")")
{
blue
+= *cit
;
qDebug() <<"blue "<< blue
;
}
else if(count
== 3 && *cit
== ")")
break;
}
ui
->redEdit
->setText(red
);
ui
->greenEdit_2
->setText(green
);
ui
->blueEdit_3
->setText(blue
);
ui
->RED
->setValue(red
.toInt());
ui
->GREEN
->setValue(green
.toInt());
ui
->BLUE
->setValue(blue
.toInt());
ui
->label
->setStyleSheet(tmp
);
connect(ui
->color_enter
,&QPushButton
::clicked
,this,&MainWindow
::color_enter
);
}
void MainWindow
::on_RED_sliderMoved(int position
)
{
qDebug()<< "value"<<ui
->RED
->value();
qDebug() << position
;
this->red_position
= position
;
ui
->redEdit
->setText(QString
::number(red_position
));
ui
->greenEdit_2
->setText(QString
::number(ui
->GREEN
->value()));
ui
->blueEdit_3
->setText(QString
::number(ui
->BLUE
->value()));
QString color
= QString("background-color: rgb(%1, %2, %3);").arg(QString
::number(red_position
)).arg(ui
->GREEN
->value()).arg(ui
->BLUE
->value());
ui
->label
->setStyleSheet(color
);
}
void MainWindow
::on_GREEN_sliderMoved(int position
)
{
qDebug()<< "value"<<ui
->RED
->value();
qDebug() << position
;
this->green_position
= position
;
ui
->redEdit
->setText(QString
::number(ui
->RED
->value()));
ui
->greenEdit_2
->setText(QString
::number(green_position
));
ui
->blueEdit_3
->setText(QString
::number(ui
->BLUE
->value()));
QString color
= QString("background-color: rgb(%1, %2, %3);").arg(ui
->RED
->value()).arg(QString
::number(green_position
)).arg(ui
->BLUE
->value());
ui
->label
->setStyleSheet(color
);
}
void MainWindow
::on_BLUE_sliderMoved(int position
)
{
qDebug()<< "value"<<ui
->RED
->value();
qDebug() << position
;
this->blue_position
= position
;
ui
->redEdit
->setText(QString
::number(ui
->RED
->value()));
ui
->greenEdit_2
->setText(QString
::number(ui
->GREEN
->value()));
ui
->blueEdit_3
->setText(QString
::number(blue_position
));
QString color
= QString("background-color: rgb(%1, %2, %3);").arg(ui
->RED
->value()).arg(ui
->GREEN
->value()).arg(QString
::number(blue_position
));
ui
->label
->setStyleSheet(color
);
}
void MainWindow
::color_enter( )
{
qDebug() << "hello ";
QString tmp
= ui
->label
->styleSheet();
QString red
="";
QString green
="";
QString blue
="";
int count
= 0;
QString
::const_iterator cit
= nullptr;
for(cit
= tmp
.begin();cit
!= tmp
.end();cit
++)
{
if(*cit
== "(" && count
== 0)
{
count
++;
continue;
}
else if(*cit
!= "(" && *cit
!= "," && count
==1)
{
red
+= *cit
;
qDebug() << "red" <<red
;
}
else if (*cit
== "," && count
== 1)
{
count
++;
continue;
}
else if (count
==2 && *cit
!= ",")
{
green
+= *cit
;
qDebug() <<"green" << green
;
}
else if(count
== 2 && *cit
==",")
{
count
= 3;
continue;
}
else if(count
== 3 && *cit
!= ")")
{
blue
+= *cit
;
qDebug() <<"blue "<< blue
;
}
else if(count
== 3 && *cit
== ")")
break;
}
QString color
= QString("background-color: rgb(%1, %2, %3);").arg(red
).arg(green
).arg(blue
);
if( btn
== ui
->color_enter
)
{
disconnect(ui
->color_enter
,&QPushButton
::clicked
,this,&MainWindow
::color_enter
);
return ;
}
else
{
disconnect(ui
->color_enter
,&QPushButton
::clicked
,this,&MainWindow
::color_enter
);
btn
->setStyleSheet(color
);
}
}
在这里插入代码片
```cpp
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QButtonGroup>
#include <QPushButton>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
public slots:
void color_select();
private slots:
void on_RED_sliderMoved(int position);
void on_GREEN_sliderMoved(int position);
void on_BLUE_sliderMoved(int position);
void color_enter();
signals:
void color_enterjump(QPushButton* btn);
private:
Ui::MainWindow *ui;
int red_position;
int green_position;
int blue_position;
QPushButton * btn;
};
#endif // MAINWINDOW_H
在这里插入代码片