From fbf1429ee827999b546112905310e3d15c31c1ff Mon Sep 17 00:00:00 2001 From: huayadong Date: Thu, 3 Dec 2020 16:55:09 +0800 Subject: [PATCH] 25555 [alarm clock] in all drop-down boxes, the highlight will not change with the mouse movement --- src/plugins/ukui-clock/clock.cpp | 44 ++++++------- .../ukui-clock/setAlarmRepeatDialog.cpp | 66 ++++++++++--------- src/plugins/ukui-clock/setAlarmRepeatDialog.h | 7 +- src/plugins/ukui-clock/setupPage.cpp | 32 ++++----- 4 files changed, 78 insertions(+), 71 deletions(-) diff --git a/src/plugins/ukui-clock/clock.cpp b/src/plugins/ukui-clock/clock.cpp index 7a206b7..390f98e 100644 --- a/src/plugins/ukui-clock/clock.cpp +++ b/src/plugins/ukui-clock/clock.cpp @@ -460,7 +460,7 @@ void Clock::setup_init() model_setup_set(); //设置数据库初始化 // Set database initialization text_timerUpdate(); - ui->lineEdit->setMaxLength(9);//限制闹钟名字长度为9个字符 + ui->lineEdit->setMaxLength(8);//限制闹钟名字长度为9个字符 //设置输入框无视空格 // QRegExp rx = QRegExp("[\40]*"); @@ -2264,9 +2264,9 @@ void Clock::alarm_repeat() dialog_repeat->widget[8]->alarmLabel0->setText(tr("Sun")); for (int i=0; i<7; i++) { if (repeat_day[i]) { - dialog_repeat->widget[i+2]->alarmLabel1->setIcon(repeat_on_Pixmap); + dialog_repeat->widget[i+2]->alarmLabel1->setPixmap(repeat_on_Pixmap); } else { - dialog_repeat->widget[i+2]->alarmLabel1->setIcon(repeat_off_Pixmap); + dialog_repeat->widget[i+2]->alarmLabel1->setPixmap(repeat_off_Pixmap); } } dialog_repeat->show(); @@ -2294,7 +2294,7 @@ void Clock::repeat_listClickslot() for (int i=0; i<7; i++) { repeat_day[i] = 1; qDebug() << repeat_day[i]; - dialog_repeat->widget[i+2]->alarmLabel1->setIcon(repeat_off_Pixmap); + dialog_repeat->widget[i+2]->alarmLabel1->setPixmap(repeat_off_Pixmap); } dialog_repeat->close(); @@ -2307,105 +2307,105 @@ void Clock::repeat_listClickslot() if(model_setup->index(0, i+7).data().toInt()) { repeat_day[i] = 1; qDebug() << repeat_day[i]; - dialog_repeat->widget[i+2]->alarmLabel1->setIcon(repeat_on_Pixmap); + dialog_repeat->widget[i+2]->alarmLabel1->setPixmap(repeat_on_Pixmap); } else { repeat_day[i] = 0; - dialog_repeat->widget[i+2]->alarmLabel1->setIcon(repeat_off_Pixmap); + dialog_repeat->widget[i+2]->alarmLabel1->setPixmap(repeat_off_Pixmap); } } - dialog_repeat->widget[7]->alarmLabel1->setIcon(repeat_on_Pixmap); - dialog_repeat->widget[8]->alarmLabel1->setIcon(repeat_on_Pixmap); + dialog_repeat->widget[7]->alarmLabel1->setPixmap(repeat_on_Pixmap); + dialog_repeat->widget[8]->alarmLabel1->setPixmap(repeat_on_Pixmap); dialog_repeat->close(); return; break; case 2: if (repeat_day[0] == 0 ) { repeat_day[0] = 1; - dialog_repeat->widget[2]->alarmLabel1->setIcon(repeat_on_Pixmap); + dialog_repeat->widget[2]->alarmLabel1->setPixmap(repeat_on_Pixmap); } else { if(repeat_day[1]== 0 && repeat_day[2]== 0 && repeat_day[3]== 0 && repeat_day[4]== 0 && repeat_day[5]== 0 && repeat_day[6]== 0){ //防止全部勾选被取消 }else{ repeat_day[0] = 0; - dialog_repeat->widget[2]->alarmLabel1->setIcon(repeat_off_Pixmap); + dialog_repeat->widget[2]->alarmLabel1->setPixmap(repeat_off_Pixmap); } } break; case 3: if(repeat_day[1] == 0 ) { repeat_day[1] = 1; - dialog_repeat->widget[3]->alarmLabel1->setIcon(repeat_on_Pixmap); + dialog_repeat->widget[3]->alarmLabel1->setPixmap(repeat_on_Pixmap); } else { if(repeat_day[0]== 0 && repeat_day[2]== 0 && repeat_day[3]== 0 && repeat_day[4]== 0 && repeat_day[5]== 0 && repeat_day[6]== 0){ }else{ repeat_day[1] = 0; - dialog_repeat->widget[3]->alarmLabel1->setIcon(repeat_off_Pixmap); + dialog_repeat->widget[3]->alarmLabel1->setPixmap(repeat_off_Pixmap); } } break; case 4: if (repeat_day[2] == 0 ) { repeat_day[2] = 1; - dialog_repeat->widget[4]->alarmLabel1->setIcon(repeat_on_Pixmap); + dialog_repeat->widget[4]->alarmLabel1->setPixmap(repeat_on_Pixmap); } else { if(repeat_day[1]== 0 && repeat_day[0]== 0 && repeat_day[3]== 0 && repeat_day[4]== 0 && repeat_day[5]== 0 && repeat_day[6]== 0){ }else{ repeat_day[2] = 0; - dialog_repeat->widget[4]->alarmLabel1->setIcon(repeat_off_Pixmap); + dialog_repeat->widget[4]->alarmLabel1->setPixmap(repeat_off_Pixmap); } } break; case 5: if (repeat_day[3] == 0 ) { repeat_day[3] = 1; - dialog_repeat->widget[5]->alarmLabel1->setIcon(repeat_on_Pixmap); + dialog_repeat->widget[5]->alarmLabel1->setPixmap(repeat_on_Pixmap); } else { if(repeat_day[1]== 0 && repeat_day[2]== 0 && repeat_day[0]== 0 && repeat_day[4]== 0 && repeat_day[5]== 0 && repeat_day[6]== 0){ }else{ repeat_day[3] = 0; - dialog_repeat->widget[5]->alarmLabel1->setIcon(repeat_off_Pixmap); + dialog_repeat->widget[5]->alarmLabel1->setPixmap(repeat_off_Pixmap); } } break; case 6: if (repeat_day[4] == 0 ) { repeat_day[4] = 1; - dialog_repeat->widget[6]->alarmLabel1->setIcon(repeat_on_Pixmap); + dialog_repeat->widget[6]->alarmLabel1->setPixmap(repeat_on_Pixmap); } else { if(repeat_day[1]== 0 && repeat_day[2]== 0 && repeat_day[3]== 0 && repeat_day[0]== 0 && repeat_day[5]== 0 && repeat_day[6]== 0){ }else{ repeat_day[4] = 0; - dialog_repeat->widget[6]->alarmLabel1->setIcon(repeat_off_Pixmap); + dialog_repeat->widget[6]->alarmLabel1->setPixmap(repeat_off_Pixmap); } } break; case 7: if (repeat_day[5] == 0 ) { repeat_day[5] = 1; - dialog_repeat->widget[7]->alarmLabel1->setIcon(repeat_on_Pixmap); + dialog_repeat->widget[7]->alarmLabel1->setPixmap(repeat_on_Pixmap); } else { if(repeat_day[1]== 0 && repeat_day[2]== 0 && repeat_day[3]== 0 && repeat_day[4]== 0 && repeat_day[0]== 0 && repeat_day[6]== 0){ }else{ repeat_day[5] = 0; - dialog_repeat->widget[7]->alarmLabel1->setIcon(repeat_off_Pixmap); + dialog_repeat->widget[7]->alarmLabel1->setPixmap(repeat_off_Pixmap); } } break; case 8: if (repeat_day[6] == 0 ) { repeat_day[6] = 1; - dialog_repeat->widget[8]->alarmLabel1->setIcon(repeat_on_Pixmap); + dialog_repeat->widget[8]->alarmLabel1->setPixmap(repeat_on_Pixmap); } else { if(repeat_day[1]== 0 && repeat_day[2]== 0 && repeat_day[3]== 0 && repeat_day[4]== 0 && repeat_day[5]== 0 && repeat_day[0]== 0){ }else{ repeat_day[6] = 0; - dialog_repeat->widget[8]->alarmLabel1->setIcon(repeat_off_Pixmap); + dialog_repeat->widget[8]->alarmLabel1->setPixmap(repeat_off_Pixmap); } } break; diff --git a/src/plugins/ukui-clock/setAlarmRepeatDialog.cpp b/src/plugins/ukui-clock/setAlarmRepeatDialog.cpp index 9aed9b0..0787fff 100644 --- a/src/plugins/ukui-clock/setAlarmRepeatDialog.cpp +++ b/src/plugins/ukui-clock/setAlarmRepeatDialog.cpp @@ -32,8 +32,8 @@ set_alarm_repeat_Dialog::set_alarm_repeat_Dialog(QWidget *parent , int rowNum ) QWidget(parent) { setupUi(this); - this->setStyleSheet("border-radius:4px;border:0px rgba();"); - this->listWidget->setStyleSheet("background-color: rgba(255, 255, 255,0);"); + //this->setStyleSheet("border-radius:4px;border:0px rgba();"); + //this->listWidget->setStyleSheet("background-color: rgba(233,233,233,0);"); this->setWindowOpacity(0.9); for (int i = 0; i < rowNum_all; i++) { @@ -56,7 +56,7 @@ void set_alarm_repeat_Dialog::set_aItem(int rowNum) { aItem[rowNum] =new QListWidgetItem; aItem[rowNum]->setSizeHint(QSize(276, 32)); -// aItem[rowNum]->setTextColor(QColor(255, 0, 0, 255)); + aItem[rowNum]->setTextColor(QColor(255, 0, 0, 255)); listWidget->addItem(aItem[rowNum]); listWidget->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); listWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); @@ -74,7 +74,7 @@ void set_alarm_repeat_Dialog::setupUi(QWidget( *set_alarm_repeat_Dialog)) listWidget = new QListWidget(set_alarm_repeat_Dialog); listWidget->setObjectName(QString::fromUtf8("listWidget")); listWidget->setGeometry(QRect(0, 0, 280, 162)); - //listWidget->setStyleSheet("selection-background-color: rgba(39,207,129,0.9);"); +// listWidget->setStyleSheet("selection-background-color: rgba(39,207,129,0.9);"); retranslateUi(set_alarm_repeat_Dialog); @@ -117,10 +117,37 @@ void set_alarm_repeat_Dialog::paintEvent(QPaintEvent *event) QWidget::paintEvent(event); } +bool set_alarm_repeat_Dialog::eventFilter(QObject *watched, QEvent *event) +{ + if(watched == listWidget && event->type() == QEvent::Paint) + { + showPaint(); //响应函数 + } + return QWidget::eventFilter(watched,event); +} + +//实现响应函数 listwidget上色 +void set_alarm_repeat_Dialog::showPaint() +{ + QPalette palette = listWidget->palette(); + QColor ColorPlaceholderText(248,163,76,255); + QBrush brush3; + brush3.setColor(ColorPlaceholderText); + QStyleOption opt; + opt.init(this); + if(QColor(255,255,255) == opt.palette.color(QPalette::Base) || QColor(248,248,248) == opt.palette.color(QPalette::Base)) + { + palette.setBrush(QPalette::Background, QBrush(QColor(133, 233, 233))); + }else{ + palette.setBrush(QPalette::Background, QBrush(QColor(48,48,51))); + } + listWidget->setPalette(palette); +} + + set_alarm_repeat_widget::set_alarm_repeat_widget(QWidget *parent): QWidget(parent) { - //this->setStyleSheet("border-radius:12px;"); this->setFixedSize(276, 32); alarmLabel0 = new QLabel(this); @@ -129,7 +156,7 @@ set_alarm_repeat_widget::set_alarm_repeat_widget(QWidget *parent): alarmLabel0->setStyleSheet("background-color: rgb();"); alarmLabel0->setText("选项"); - alarmLabel1 = new QPushButton(this); + alarmLabel1 = new ClickableLabel(this); alarmLabel1->move(240, 0); alarmLabel1->setFixedSize(34, 32); alarmLabel1->setStyleSheet("background-color: rgb();"); @@ -145,30 +172,5 @@ set_alarm_repeat_widget::~set_alarm_repeat_widget() void set_alarm_repeat_widget::paintEvent(QPaintEvent *event) { -// Q_UNUSED(event); -// QPainter painter(this); -// painter.setRenderHint(QPainter::Antialiasing); // 反锯齿; - -// QStyleOption opt; -// opt.init(this); -// painter.setBrush(opt.palette.color(QPalette::Base)); - -// if(QColor(255,255,255) == opt.palette.color(QPalette::Base) || QColor(248,248,248) == opt.palette.color(QPalette::Base)) -// { -// painter.setBrush(QColor(121,121,121)); -// }else{ -// painter.setBrush(QColor(48,48,51)); -// } - -// painter.setPen(Qt::transparent); -// QRect rect = this->rect(); -// rect.setWidth(rect.width() - 0); -// rect.setHeight(rect.height() - 0); -// painter.drawRoundedRect(rect, 7, 7); -// { -// QPainterPath painterPath; -// painterPath.addRoundedRect(rect, 7, 7); -// painter.drawPath(painterPath); -// } -// QWidget::paintEvent(event); + } diff --git a/src/plugins/ukui-clock/setAlarmRepeatDialog.h b/src/plugins/ukui-clock/setAlarmRepeatDialog.h index 2d7b87c..37938a2 100644 --- a/src/plugins/ukui-clock/setAlarmRepeatDialog.h +++ b/src/plugins/ukui-clock/setAlarmRepeatDialog.h @@ -22,6 +22,7 @@ #include #include #include +#include "clickableLabel.h" namespace Ui { class set_alarm_repeat_Dialog; @@ -39,6 +40,9 @@ public: ~set_alarm_repeat_Dialog(); void paintEvent(QPaintEvent *event); + bool eventFilter(QObject *watched, QEvent *event); + + void showPaint(); set_alarm_repeat_widget *widget[20]; QListWidgetItem *aItem[20]; @@ -67,7 +71,8 @@ public: void paintEvent(QPaintEvent *event); QLabel *alarmLabel0; - QPushButton *alarmLabel1; + //QPushButton + ClickableLabel *alarmLabel1; private: diff --git a/src/plugins/ukui-clock/setupPage.cpp b/src/plugins/ukui-clock/setupPage.cpp index 8f7d06e..f6bceba 100644 --- a/src/plugins/ukui-clock/setupPage.cpp +++ b/src/plugins/ukui-clock/setupPage.cpp @@ -217,9 +217,9 @@ void setuppage::werk_day_set() for (int i=0; i<7; i++) { if (model_setup->index(0, i+7).data().toInt()) { - dialog_werk_day->widget[i]->alarmLabel1->setIcon(repeat_on_Pixmap); + dialog_werk_day->widget[i]->alarmLabel1->setPixmap(repeat_on_Pixmap); } else { - dialog_werk_day->widget[i]->alarmLabel1->setIcon(repeat_off_Pixmap); + dialog_werk_day->widget[i]->alarmLabel1->setPixmap(repeat_off_Pixmap); } } dialog_werk_day->show(); @@ -252,11 +252,11 @@ void setuppage::werk_day_listClickslot() model_setup->index(0, 13).data().toInt()==0){ }else{ model_setup->setData(model_setup->index(0, 7), 0); - dialog_werk_day->widget[0]->alarmLabel1->setIcon(repeat_off_Pixmap); + dialog_werk_day->widget[0]->alarmLabel1->setPixmap(repeat_off_Pixmap); } }else{ model_setup->setData(model_setup->index(0, 7), 1); - dialog_werk_day->widget[0]->alarmLabel1->setIcon(repeat_on_Pixmap); + dialog_werk_day->widget[0]->alarmLabel1->setPixmap(repeat_on_Pixmap); } break; @@ -271,11 +271,11 @@ void setuppage::werk_day_listClickslot() model_setup->index(0, 13).data().toInt()==0 ){ }else{ model_setup->setData(model_setup->index(0, 8), 0); - dialog_werk_day->widget[1]->alarmLabel1->setIcon(repeat_off_Pixmap); + dialog_werk_day->widget[1]->alarmLabel1->setPixmap(repeat_off_Pixmap); } }else{ model_setup->setData(model_setup->index(0, 8), 1); - dialog_werk_day->widget[1]->alarmLabel1->setIcon(repeat_on_Pixmap); + dialog_werk_day->widget[1]->alarmLabel1->setPixmap(repeat_on_Pixmap); } break; @@ -290,11 +290,11 @@ void setuppage::werk_day_listClickslot() model_setup->index(0, 13).data().toInt()==0 ){ }else{ model_setup->setData(model_setup->index(0, 9), 0); - dialog_werk_day->widget[2]->alarmLabel1->setIcon(repeat_off_Pixmap); + dialog_werk_day->widget[2]->alarmLabel1->setPixmap(repeat_off_Pixmap); } }else{ model_setup->setData(model_setup->index(0, 9), 1); - dialog_werk_day->widget[2]->alarmLabel1->setIcon(repeat_on_Pixmap); + dialog_werk_day->widget[2]->alarmLabel1->setPixmap(repeat_on_Pixmap); } break; @@ -309,11 +309,11 @@ void setuppage::werk_day_listClickslot() model_setup->index(0, 13).data().toInt()==0 ){ }else{ model_setup->setData(model_setup->index(0, 10), 0); - dialog_werk_day->widget[3]->alarmLabel1->setIcon(repeat_off_Pixmap); + dialog_werk_day->widget[3]->alarmLabel1->setPixmap(repeat_off_Pixmap); } }else{ model_setup->setData(model_setup->index(0, 10), 1); - dialog_werk_day->widget[3]->alarmLabel1->setIcon(repeat_on_Pixmap); + dialog_werk_day->widget[3]->alarmLabel1->setPixmap(repeat_on_Pixmap); } break; @@ -327,11 +327,11 @@ void setuppage::werk_day_listClickslot() model_setup->index(0, 13).data().toInt()==0 ){ }else{ model_setup->setData(model_setup->index(0, 11), 0); - dialog_werk_day->widget[4]->alarmLabel1->setIcon(repeat_off_Pixmap); + dialog_werk_day->widget[4]->alarmLabel1->setPixmap(repeat_off_Pixmap); } } else { model_setup->setData(model_setup->index(0, 11), 1); - dialog_werk_day->widget[4]->alarmLabel1->setIcon(repeat_on_Pixmap); + dialog_werk_day->widget[4]->alarmLabel1->setPixmap(repeat_on_Pixmap); } break; @@ -345,11 +345,11 @@ void setuppage::werk_day_listClickslot() model_setup->index(0, 13).data().toInt()==0 ){ }else{ model_setup->setData(model_setup->index(0, 12), 0); - dialog_werk_day->widget[5]->alarmLabel1->setIcon(repeat_off_Pixmap); + dialog_werk_day->widget[5]->alarmLabel1->setPixmap(repeat_off_Pixmap); } } else { model_setup->setData(model_setup->index(0, 12), 1); - dialog_werk_day->widget[5]->alarmLabel1->setIcon(repeat_on_Pixmap); + dialog_werk_day->widget[5]->alarmLabel1->setPixmap(repeat_on_Pixmap); } break; @@ -363,11 +363,11 @@ void setuppage::werk_day_listClickslot() model_setup->index(0, 7).data().toInt()==0 ){ }else{ model_setup->setData(model_setup->index(0, 13), 0); - dialog_werk_day->widget[6]->alarmLabel1->setIcon(repeat_off_Pixmap); + dialog_werk_day->widget[6]->alarmLabel1->setPixmap(repeat_off_Pixmap); } } else { model_setup->setData(model_setup->index(0, 13), 1); - dialog_werk_day->widget[6]->alarmLabel1->setIcon(repeat_on_Pixmap); + dialog_werk_day->widget[6]->alarmLabel1->setPixmap(repeat_on_Pixmap); } break; -- 2.33.0