头文件
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QPushButton>
#include "QDebug"
QT_BEGIN_NAMESPACE
namespace Ui
{ class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget
*parent
= nullptr);
~MainWindow();
private:
Ui
::MainWindow
*ui
;
QPushButton
*btn
[10];
int curBtn
;
int beforeBtn
;
public slots
:
void readSlide();
void setSlide();
void cBtn1Click();
void cBtn2Click();
void cBtn3Click();
void cBtn4Click();
void cBtn5Click();
void cBtn6Click();
void cBtn7Click();
void cBtn8Click();
void cBtn9Click();
void cBtn10Click();
void cBtnChanged(int i
);
void changeCur();
signals
:
void cBtn1Clicked(int value
);
void cBtn2Clicked(int value
);
void cBtn3Clicked(int value
);
void cBtn4Clicked(int value
);
void cBtn5Clicked(int value
);
void cBtn6Clicked(int value
);
void cBtn7Clicked(int value
);
void cBtn8Clicked(int value
);
void cBtn9Clicked(int value
);
void cBtn10Clicked(int value
);
};
#endif
main
.c
#include "mainwindow.h"
#include <QApplication>
int main(int argc
, char *argv
[])
{
QApplication
a(argc
, argv
);
MainWindow w
;
w
.show();
return a
.exec();
}
cpp
mainwindow
.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <string>
MainWindow
::MainWindow(QWidget
*parent
)
: QMainWindow(parent
)
, ui(new Ui
::MainWindow
)
{
curBtn
=0;
ui
->setupUi(this);
btn
[0]=ui
->cBtn_1
;
ui
->cBtn_1
->setChecked(true);
qDebug() << "-----++++0------" <<btn
[0]->isChecked() ;
btn
[1]=ui
->cBtn_2
;
btn
[2]=ui
->cBtn_3
;
btn
[3]=ui
->cBtn_4
;
btn
[4]=ui
->cBtn_5
;
btn
[5]=ui
->cBtn_6
;
btn
[6]=ui
->cBtn_7
;
btn
[7]=ui
->cBtn_8
;
btn
[8]=ui
->cBtn_9
;
btn
[9]=ui
->cBtn_10
;
connect(ui
->redHorSlider
,&QAbstractSlider
::sliderMoved
,this,&MainWindow
::readSlide
);
connect(ui
->greenHorSlider
,&QAbstractSlider
::sliderMoved
,this,&MainWindow
::readSlide
);
connect(ui
->blueHorSlider
,&QAbstractSlider
::sliderMoved
,this,&MainWindow
::readSlide
);
connect(ui
->redLdt
,&QLineEdit
::textEdited
,this,&MainWindow
::setSlide
);
connect(ui
->greenLdt
,&QLineEdit
::textEdited
,this,&MainWindow
::setSlide
);
connect(ui
->blueLdt
,&QLineEdit
::textEdited
,this,&MainWindow
::setSlide
);
connect(ui
->cBtn_1
,&QPushButton
::clicked
,this,&MainWindow
::cBtn1Click
);
connect(ui
->cBtn_2
,&QPushButton
::clicked
,this,&MainWindow
::cBtn2Click
);
connect(ui
->cBtn_3
,&QPushButton
::clicked
,this,&MainWindow
::cBtn3Click
);
connect(ui
->cBtn_4
,&QPushButton
::clicked
,this,&MainWindow
::cBtn4Click
);
connect(ui
->cBtn_5
,&QPushButton
::clicked
,this,&MainWindow
::cBtn5Click
);
connect(ui
->cBtn_6
,&QPushButton
::clicked
,this,&MainWindow
::cBtn6Click
);
connect(ui
->cBtn_7
,&QPushButton
::clicked
,this,&MainWindow
::cBtn7Click
);
connect(ui
->cBtn_8
,&QPushButton
::clicked
,this,&MainWindow
::cBtn8Click
);
connect(ui
->cBtn_9
,&QPushButton
::clicked
,this,&MainWindow
::cBtn9Click
);
connect(ui
->cBtn_10
,&QPushButton
::clicked
,this,&MainWindow
::cBtn10Click
);
connect(this,&MainWindow
::cBtn1Clicked
,this,&MainWindow
::cBtnChanged
);
connect(this,&MainWindow
::cBtn2Clicked
,this,&MainWindow
::cBtnChanged
);
connect(this,&MainWindow
::cBtn3Clicked
,this,&MainWindow
::cBtnChanged
);
connect(this,&MainWindow
::cBtn4Clicked
,this,&MainWindow
::cBtnChanged
);
connect(this,&MainWindow
::cBtn5Clicked
,this,&MainWindow
::cBtnChanged
);
connect(this,&MainWindow
::cBtn6Clicked
,this,&MainWindow
::cBtnChanged
);
connect(this,&MainWindow
::cBtn7Clicked
,this,&MainWindow
::cBtnChanged
);
connect(this,&MainWindow
::cBtn8Clicked
,this,&MainWindow
::cBtnChanged
);
connect(this,&MainWindow
::cBtn9Clicked
,this,&MainWindow
::cBtnChanged
);
connect(this,&MainWindow
::cBtn10Clicked
,this,&MainWindow
::cBtnChanged
);
connect(ui
->changeBtn
,&QPushButton
::clicked
,this,&MainWindow
::changeCur
);
}
MainWindow
::~MainWindow()
{
delete ui
;
}
void MainWindow
::readSlide()
{
int red
=ui
->redHorSlider
->value();
int green
=ui
->greenHorSlider
->value();
int blue
=ui
->blueHorSlider
->value();
ui
->redLdt
->setText(QString
::number(red
));
ui
->greenLdt
->setText(QString
::number(green
));
ui
->blueLdt
->setText(QString
::number(blue
));
QString color
=QString("background-color:rgb(%1,%2,%3);").arg(red
).arg(green
).arg(blue
);
ui
->colorLab
->setStyleSheet(color
);
}
void MainWindow
::setSlide()
{
int red
=ui
->redLdt
->text().toInt();
int green
=ui
->greenLdt
->text().toInt();
int blue
=ui
->blueLdt
->text().toInt();
ui
->redHorSlider
->setSliderPosition(red
);
ui
->greenHorSlider
->setSliderPosition(green
);
ui
->blueHorSlider
->setSliderPosition(blue
);
QString color
=QString("background-color:rgb(%1,%2,%3);").arg(red
).arg(green
).arg(blue
);
ui
->colorLab
->setStyleSheet(color
);
}
void MainWindow
::cBtn1Click()
{
emit
cBtn1Clicked(0);
}
void MainWindow
::cBtn2Click()
{
emit
cBtn2Clicked(1);
}
void MainWindow
::cBtn3Click()
{
emit
cBtn3Clicked(2);
}
void MainWindow
::cBtn4Click()
{
emit
cBtn4Clicked(3);
}
void MainWindow
::cBtn5Click()
{
emit
cBtn5Clicked(4);
}
void MainWindow
::cBtn6Click()
{
emit
cBtn6Clicked(5);
}
void MainWindow
::cBtn7Click()
{
emit
cBtn7Clicked(6);
}
void MainWindow
::cBtn8Click()
{
emit
cBtn8Clicked(7);
}
void MainWindow
::cBtn9Click()
{
emit
cBtn9Clicked(8);
}
void MainWindow
::cBtn10Click()
{
emit
cBtn10Clicked(9);
}
void MainWindow
::cBtnChanged(int i
)
{
qDebug() << "------------" ;
qDebug() << "-----++++------" <<btn
[i
]->isChecked() ;
if( curBtn
== i
&&btn
[i
]->isChecked() == true)
{
curBtn
= i
;
}
else {
btn
[curBtn
]->setChecked(false);
curBtn
= i
;
btn
[i
]->setChecked(true);
}
btn
[curBtn
]->setChecked(true);
std
::string oriColor
,oriRed
,oriGreen
,oriBlue
;
oriColor
=btn
[i
]->styleSheet().toStdString();
qDebug() << btn
[i
]->styleSheet();
unsigned int num
=0,a
=0,c
=0;
unsigned int b
[2];
int j
=0;
for(;num
<oriColor
.size();num
++)
{
if(oriColor
[num
]=='(')
a
=num
;
if(oriColor
[num
]==',')
{
b
[j
]=num
;
qDebug() << " j=" << j
<< endl
;
j
++;
}
if(oriColor
[num
]==')')
{
c
=num
;
}
}
for(unsigned int x
=0;(a
+1)<=b
[0];a
++,x
++)
{
oriRed
[x
]=oriColor
[a
+1];
}
for(unsigned int x
=0;(b
[0]+1)<=b
[1];b
[0]++,x
++)
{
oriGreen
[x
]=oriColor
[b
[0]+1];
}
for(unsigned int x
=0;(b
[1]+1)<=c
;b
[1]++,x
++)
{
oriBlue
[x
]=oriColor
[b
[1]+1];
}
int R
=stoi(oriRed
);
int G
=stoi(oriGreen
);
int B
=stoi(oriBlue
);
ui
->colorLab
->setStyleSheet(QString
::fromStdString(oriColor
));
ui
->redHorSlider
->setSliderPosition(R
);
ui
->greenHorSlider
->setSliderPosition(G
);
ui
->blueHorSlider
->setSliderPosition(B
);
ui
->redLdt
->setText(QString
::number(R
));
ui
->greenLdt
->setText(QString
::number(G
));
ui
->blueLdt
->setText(QString
::number(B
));
}
void MainWindow
::changeCur()
{
QString color
;
color
=ui
->colorLab
->styleSheet();
btn
[curBtn
]->setStyleSheet(color
);
btn
[curBtn
]->setChecked(false);
if(++curBtn
==10)
{
curBtn
= 0;
btn
[curBtn
]->setChecked(true);
}
else {
btn
[curBtn
]->setChecked(true);
}
}
效果图:
转载请注明原文地址:https://ipadbbs.8miu.com/read-42052.html