my

    技术2026-06-04  9

    ```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; //"background-color: rgb(%1, %2, %3);") 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_enter,&QPushButton::clicked,this,&MainWindow::color_select); 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); //设置checkable checked(true)表示选中状态 //默认指定第一个按钮,设置添加到颜色按钮的连接,自动往下给按钮添加颜色 //还是得用数组QPushtton存储指针的值 } MainWindow::~MainWindow() { delete ui; } void MainWindow::color_select() { btn = qobject_cast<QPushButton*>(sender()); QString tmp = btn->styleSheet(); qDebug() << tmp; //"background-color: rgb(%1, %2, %3);") 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()); //QString tmp= ui->label->styleSheet(); 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()); //QString tmp= ui->label->styleSheet(); 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 "; //"background-color: rgb(%1, %2, %3);") 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); //QString tmp= ui->label->styleSheet(); 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 在这里插入代码片

    Processed: 0.028, SQL: 9