Skip to content

Commit e468ba6

Browse files
committed
[优化BubbleWindow和Clock模块,重构DashBoard模块]: 代码优化与功能增强
-**BubbleWindow模块**: 修复lambda表达式捕获列表,移除不必要的this捕获,提高代码安全性和可读性 -**Clock模块**: 优化颜色选择连接函数,移除冗余的clock参数捕获,简化lambda表达式 -**DashBoard模块**: 全面重构仪表盘控件,包括重写绘制算法、添加动画系统、增强颜色配置和主题支持 -**仪表盘主窗口**: 重新设计用户界面,提供完整的参数控制面板和主题切换功能 -**动画系统**: 实现平滑数值变化动画,支持动画启停控制和进度跟踪 -**颜色管理**: 分离数值颜色和标题颜色配置,提供完整的颜色定制能力 -**主题预设**: 添加经典、暗色和现代三种预设主题,支持一键切换视觉效果 -**API改进**: 完善属性访问器,增加数值增减和重置等便捷方法,优化信号发射机制
1 parent 798d407 commit e468ba6

6 files changed

Lines changed: 976 additions & 234 deletions

File tree

src/BubbleWindow/mainwindow.cpp

Lines changed: 25 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -220,39 +220,33 @@ MainWindow::MainWindow(QWidget *parent)
220220
}
221221
};
222222

223-
connect(penColorButton,
224-
&QPushButton::clicked,
225-
[this, bubble, penColorLabel, createColorDialog]() {
226-
createColorDialog(
227-
tr("Select Border Color"),
228-
bubble->pen().color(),
229-
[bubble](const QColor &color) {
230-
QPen pen = bubble->pen();
231-
pen.setColor(color);
232-
bubble->setPen(pen);
233-
},
234-
penColorLabel);
235-
});
223+
connect(penColorButton, &QPushButton::clicked, [bubble, penColorLabel, createColorDialog]() {
224+
createColorDialog(
225+
tr("Select Border Color"),
226+
bubble->pen().color(),
227+
[bubble](const QColor &color) {
228+
QPen pen = bubble->pen();
229+
pen.setColor(color);
230+
bubble->setPen(pen);
231+
},
232+
penColorLabel);
233+
});
236234

237-
connect(brushColorButton,
238-
&QPushButton::clicked,
239-
[this, bubble, brushColorLabel, createColorDialog]() {
240-
createColorDialog(
241-
tr("Select Background Color"),
242-
bubble->brush().color(),
243-
[bubble](const QColor &color) { bubble->setBrush(QBrush(color)); },
244-
brushColorLabel);
245-
});
235+
connect(brushColorButton, &QPushButton::clicked, [bubble, brushColorLabel, createColorDialog]() {
236+
createColorDialog(
237+
tr("Select Background Color"),
238+
bubble->brush().color(),
239+
[bubble](const QColor &color) { bubble->setBrush(QBrush(color)); },
240+
brushColorLabel);
241+
});
246242

247-
connect(textColorButton,
248-
&QPushButton::clicked,
249-
[this, bubble, textColorLabel, createColorDialog]() {
250-
createColorDialog(
251-
tr("Select Text Color"),
252-
bubble->textColor(),
253-
[bubble](const QColor &color) { bubble->setTextColor(color); },
254-
textColorLabel);
255-
});
243+
connect(textColorButton, &QPushButton::clicked, [bubble, textColorLabel, createColorDialog]() {
244+
createColorDialog(
245+
tr("Select Text Color"),
246+
bubble->textColor(),
247+
[bubble](const QColor &color) { bubble->setTextColor(color); },
248+
textColorLabel);
249+
});
256250

257251
// 动画控制连接
258252
connect(animationDurationSlider,

src/Clock/mainwindow.cpp

Lines changed: 19 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -144,21 +144,20 @@ MainWindow::MainWindow(QWidget *parent)
144144
// 连接信号和槽
145145

146146
// 颜色设置 - 使用统一的颜色选择处理
147-
auto setupColorConnection =
148-
[this, clock, updateColorButton](QPushButton *button,
149-
std::function<void(const QColor &)> setter,
150-
std::function<QColor()> getter) {
151-
connect(button,
152-
&QPushButton::clicked,
153-
this,
154-
[this, clock, button, setter, getter, updateColorButton]() {
155-
QColor color = QColorDialog::getColor(getter(), this, tr("Select color"));
156-
if (color.isValid()) {
157-
setter(color);
158-
updateColorButton(button, color);
159-
}
160-
});
161-
};
147+
auto setupColorConnection = [this, updateColorButton](QPushButton *button,
148+
std::function<void(const QColor &)> setter,
149+
std::function<QColor()> getter) {
150+
connect(button,
151+
&QPushButton::clicked,
152+
this,
153+
[this, button, setter, getter, updateColorButton]() {
154+
QColor color = QColorDialog::getColor(getter(), this, tr("Select color"));
155+
if (color.isValid()) {
156+
setter(color);
157+
updateColorButton(button, color);
158+
}
159+
});
160+
};
162161

163162
setupColorConnection(
164163
borderColorButton,
@@ -211,8 +210,7 @@ MainWindow::MainWindow(QWidget *parent)
211210
connect(classicThemeButton,
212211
&QPushButton::clicked,
213212
this,
214-
[this,
215-
clock,
213+
[clock,
216214
updateColorButton,
217215
borderColorButton,
218216
backgroundColorButton,
@@ -240,8 +238,7 @@ MainWindow::MainWindow(QWidget *parent)
240238
connect(darkThemeButton,
241239
&QPushButton::clicked,
242240
this,
243-
[this,
244-
clock,
241+
[clock,
245242
updateColorButton,
246243
borderColorButton,
247244
backgroundColorButton,
@@ -269,8 +266,7 @@ MainWindow::MainWindow(QWidget *parent)
269266
connect(modernThemeButton,
270267
&QPushButton::clicked,
271268
this,
272-
[this,
273-
clock,
269+
[clock,
274270
updateColorButton,
275271
borderColorButton,
276272
backgroundColorButton,
@@ -299,8 +295,7 @@ MainWindow::MainWindow(QWidget *parent)
299295
connect(resetColorsButton,
300296
&QPushButton::clicked,
301297
this,
302-
[this,
303-
clock,
298+
[clock,
304299
updateColorButton,
305300
borderColorButton,
306301
backgroundColorButton,
@@ -338,7 +333,7 @@ MainWindow::MainWindow(QWidget *parent)
338333

339334
// 初始化状态
340335
clock->updateTime();
341-
QTimer::singleShot(100, [clock, timeLabel]() {
336+
QTimer::singleShot(100, [timeLabel]() {
342337
timeLabel->setText(tr("Current time: %1").arg(QTime::currentTime().toString("hh:mm:ss")));
343338
});
344339
}

0 commit comments

Comments
 (0)