修复点击清除列表程序core的问题

This commit is contained in:
zzh 2025-09-24 13:43:32 +08:00
parent 29e3fa2900
commit d049d9d908

View File

@ -28,7 +28,7 @@ MainWindow::MainWindow(QWidget *parent)
settings = new QSettings("TuxiApp", "LightStripSN", this);
// 初始化更新相关变量
currentVersion = "1.4.0"; // 当前程序版本
currentVersion = "1.5.1"; // 当前程序版本
updateServerUrl = settings->value("updateServerUrl", "http://180.163.74.83:8001/version").toString();
updateNetworkManager = new QNetworkAccessManager(this);
updateCheckReply = nullptr;
@ -111,7 +111,7 @@ void MainWindow::showVersionUpdateInfo()
*/
void MainWindow::setupUI() {
setWindowTitle("兔喜Test1.5 Author:Zhangzhenghao Email:zzh9953477@gmail.com");
setWindowTitle("兔喜Test1.5.1 Author:Zhangzhenghao Email:zzh9953477@gmail.com");
// 参考qt_bak的合理尺寸设置增加竖向高度
setMinimumSize(850, 720); // 增加最小高度
@ -308,6 +308,9 @@ void MainWindow::setupUI() {
snLayout->setSpacing(8); // 减少组件间距
snLayout->setContentsMargins(10, 20, 10, 10); // 减少内边距
// 初始化snHorizontalLayout
snHorizontalLayout = new QHBoxLayout();
// 统计信息和搜索按钮布局
QHBoxLayout *snHeaderLayout = new QHBoxLayout();
snHeaderLayout->setSpacing(8);
@ -368,6 +371,9 @@ void MainWindow::setupUI() {
snHeaderLayout->addWidget(clearSnBtn);
snLayout->addLayout(snHeaderLayout);
// 添加snHorizontalLayout到snLayout中
snLayout->addLayout(snHorizontalLayout);
// 打开管理器按钮
openManagerBtn = new QPushButton("打开灯条SN管理器");
@ -1116,11 +1122,16 @@ void MainWindow::loadSnList() {
void MainWindow::onClearSnListClicked()
{
// 清空所有灯条widget
QLayoutItem *item;
while ((item = snHorizontalLayout->takeAt(0)) != nullptr) {
delete item->widget();
delete item;
// 检查snHorizontalLayout是否存在避免段错误
if (snHorizontalLayout) {
// 清空所有灯条widget
QLayoutItem *item;
while ((item = snHorizontalLayout->takeAt(0)) != nullptr) {
if (item->widget()) {
delete item->widget();
}
delete item;
}
}
// 清空复选框列表和SN集合
@ -1128,7 +1139,9 @@ void MainWindow::onClearSnListClicked()
uniqueSnSet.clear();
// 更新计数显示
snCountLabel->setText("已发现灯条: 0 个");
if (snCountLabel) {
snCountLabel->setText("已发现灯条: 0 个");
}
// 不再调用saveSnList()让LightStripManager管理数据
// saveSnList(); // 删除这行