From ece8fb9643b8939c3f35ef03f767311ff3e3f06b Mon Sep 17 00:00:00 2001 From: RCi <15089880081@163.com> Date: Tue, 11 Jun 2024 08:44:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E5=8E=86=E5=8F=B2=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E6=A3=80=E7=B4=A2=E4=BB=A5=E5=8F=8A=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HanddleAI/HandleAiUi-new/back/backEndManager.h | 2 +- HanddleAI/HandleAiUi-new/back/fileManager.h | 4 +++- .../HandleAiUi-new/back/threadPoolManager.cpp | 1 + .../front/pages/displayPageWidget.h | 13 ++++++++++++- .../HandleAiUi-new/front/pages/historyWidget.h | 6 ++++++ HanddleAI/HandleAiUi-new/main.cpp | 1 + HanddleAI/HandleAiUi-new/mainwindow.cpp | 12 +++--------- HanddleAI/HandleAiUi-new/mainwindow.h | 17 +++++++++++++++-- .../uiModule/uiModule_historyListWidget.h | 15 ++++++++------- .../uiModule/uiModule_menuListWdiget.h | 6 ++++-- 10 files changed, 54 insertions(+), 23 deletions(-) diff --git a/HanddleAI/HandleAiUi-new/back/backEndManager.h b/HanddleAI/HandleAiUi-new/back/backEndManager.h index 01a2e010..d0129d4c 100644 --- a/HanddleAI/HandleAiUi-new/back/backEndManager.h +++ b/HanddleAI/HandleAiUi-new/back/backEndManager.h @@ -48,7 +48,7 @@ signals: void sendPixmapImageWidget(showImgPack*); void sendInitFinished(int); void sendInitString(QString);//初始化日志 - + void addHistoryDataSignal(bool isOK, QString path, QPixmap img); void addDashBoardData(int index, bool value);//增加一个OK/NG数据到dashboard void resetDashBoard();//reset dashBoard diff --git a/HanddleAI/HandleAiUi-new/back/fileManager.h b/HanddleAI/HandleAiUi-new/back/fileManager.h index 381b8ba0..b24c4bc4 100644 --- a/HanddleAI/HandleAiUi-new/back/fileManager.h +++ b/HanddleAI/HandleAiUi-new/back/fileManager.h @@ -265,7 +265,9 @@ public: } static std::string getFileName(std::string path) { - return path.substr(path.find_last_of("\\") + 1, path.find_last_of(".") - path.find_last_of("\\") - 1); + if (path.find("\\") != std::string::npos) + return path.substr(path.find_last_of("\\") + 1, path.find_last_of(".") - path.find_last_of("\\") - 1); + return path.substr(path.find_last_of("/") + 1, path.find_last_of(".") - path.find_last_of("/") - 1); } static QString getFileName(const QString& path) { int lastSlashIndex = path.lastIndexOf('/'); diff --git a/HanddleAI/HandleAiUi-new/back/threadPoolManager.cpp b/HanddleAI/HandleAiUi-new/back/threadPoolManager.cpp index c10de2fd..6587346d 100644 --- a/HanddleAI/HandleAiUi-new/back/threadPoolManager.cpp +++ b/HanddleAI/HandleAiUi-new/back/threadPoolManager.cpp @@ -131,6 +131,7 @@ void threadManager::resultHandle(std::shared_ptr data) pack->type = imgWidgetRes; pack->index = data->resShowIndex+ cnt; emit _backEndManager->sendPixmapImageWidget(pack); + emit _backEndManager->addHistoryDataSignal((data->aiDetOK == true && data->halconOK == true), "", pixmap); cnt++; } } diff --git a/HanddleAI/HandleAiUi-new/front/pages/displayPageWidget.h b/HanddleAI/HandleAiUi-new/front/pages/displayPageWidget.h index 88699b15..4f3b6913 100644 --- a/HanddleAI/HandleAiUi-new/front/pages/displayPageWidget.h +++ b/HanddleAI/HandleAiUi-new/front/pages/displayPageWidget.h @@ -10,6 +10,7 @@ #include class displayWidget :public QWidget { + Q_OBJECT public: QGridLayout* Layout; QLabel* icon, * Title; @@ -17,7 +18,6 @@ public: ImageWidgetManager _ImageWidgetManager; summaryDataManager* _summaryDataManager; historyShowListWidget* historyImgs = new historyShowListWidget(); - //ImageWidget* imgWidget; displayWidget() { this->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); @@ -40,6 +40,8 @@ public: Layout->setColumnStretch(2, 1); leftItemInit(); rightItemInit(); + QObject::connect(historyImgs, &historyShowListWidget::itemClickSignal, this, &displayWidget::historyClick); + //historyImgs->addData(true, "D:/CCD/yuantu/2024-06-04/23H/TEST/1 (1).bmp", QPixmap("D:/CCD/yuantu/2024-06-04/23H/TEST/1 (1).bmp")); } void rightItemInit() { @@ -72,5 +74,14 @@ public: //leftWidget->setMaximumWidth(width / 1.2); //rightWidget->setMaximumWidth(width / 2); } +private slots: + void historyClick(QString path) + { + emit historyClickSignal(path); + emit changeStackWidget(3); + } +signals: + void historyClickSignal(QString); + void changeStackWidget(int); }; #pragma once \ No newline at end of file diff --git a/HanddleAI/HandleAiUi-new/front/pages/historyWidget.h b/HanddleAI/HandleAiUi-new/front/pages/historyWidget.h index e27daf12..6bff9e5d 100644 --- a/HanddleAI/HandleAiUi-new/front/pages/historyWidget.h +++ b/HanddleAI/HandleAiUi-new/front/pages/historyWidget.h @@ -70,5 +70,11 @@ public: dirListWidget.setStyleSheet("background: transparent;"); QObject::connect(&dirListWidget, &menuListWidget::switchPathSignal, &_historyShowListWidget, &historyShowListWidget::addImgFromPath); } +public slots: + void widgetJumpWithPath(QString path) + { + dirListWidget.jumpWithPath(path); + _historyShowListWidget._historyShowListSubThread.asyncReadImg(path.toStdString()); + } }; #pragma once \ No newline at end of file diff --git a/HanddleAI/HandleAiUi-new/main.cpp b/HanddleAI/HandleAiUi-new/main.cpp index a6c7b927..0bba8f45 100644 --- a/HanddleAI/HandleAiUi-new/main.cpp +++ b/HanddleAI/HandleAiUi-new/main.cpp @@ -21,6 +21,7 @@ void connectSignalAndSlots(MainWindow* front, backEndManager* back) QObject::connect(back, &backEndManager::sendInitString, front, &MainWindow::recvInitString); QObject::connect(back, &backEndManager::sendInitFinished, front, &MainWindow::recvInitFinished); QObject::connect(back, &backEndManager::addDashBoardData, front, &MainWindow::addDashBoardData); + QObject::connect(back, &backEndManager::addHistoryDataSignal, front, &MainWindow::addDetHistoryData); QObject::connect(front, &MainWindow::reInitSignal, back, &backEndManager::initialization); QObject::connect(front->_loadingWidget.retryBtn, &QPushButton::clicked, back, &backEndManager::initialization); diff --git a/HanddleAI/HandleAiUi-new/mainwindow.cpp b/HanddleAI/HandleAiUi-new/mainwindow.cpp index b85e3c4e..c44eedb7 100644 --- a/HanddleAI/HandleAiUi-new/mainwindow.cpp +++ b/HanddleAI/HandleAiUi-new/mainwindow.cpp @@ -254,16 +254,10 @@ void MainWindow::leftBarInit() layout->addWidget(pageBtns[index]); connect(pageBtns[index], &QPushButton::clicked, [=]() { - for (int index2 = 0; index2 < pageBtns.size(); index2++) - { - if (index2 != index) - pageBtns[index2]->toDefault(); - } - pageBtns[index]->pressed(); - pageWidgets.setCurrentIndex(index); - //qInfo() << "switch Page to Index:" << index; - qDebug() << "switch Page to Index:" << index; + switchStackWidget(index); }); } toMainBtn->click(); + QObject::connect(_displayWidget, &displayWidget::changeStackWidget, this, &MainWindow::switchStackWidget); + QObject::connect(_displayWidget, &displayWidget::historyClickSignal, _historyWidget, &historyWidget::widgetJumpWithPath); } \ No newline at end of file diff --git a/HanddleAI/HandleAiUi-new/mainwindow.h b/HanddleAI/HandleAiUi-new/mainwindow.h index 78a14a63..8acdbc6e 100644 --- a/HanddleAI/HandleAiUi-new/mainwindow.h +++ b/HanddleAI/HandleAiUi-new/mainwindow.h @@ -99,7 +99,17 @@ public slots: { showMinimized(); } - + void switchStackWidget(int index) + { + for (int index2 = 0; index2 < pageBtns.size(); index2++) + { + if (index2 != index) + pageBtns[index2]->toDefault(); + } + pageBtns[index]->pressed(); + pageWidgets.setCurrentIndex(index); + qDebug() << "switch Page to Index:" << index; + } void toggleMaximize(toggleMaximizeEnum toggleMaximizeEnumIn = reverse) { switch (toggleMaximizeEnumIn) @@ -210,7 +220,10 @@ public slots: _loadingWidget.initLog->append(strIn); } } - + void addDetHistoryData(bool isOK, QString path, QPixmap img) + { + _displayWidget->historyImgs->addData(isOK, path, img); + } void addDashBoardData(int index, bool value)//澧炲姞涓�涓狾K/NG鏁版嵁鍒癲ashboard { if (_displayWidget->_summaryDataManager->dashBoardWidgets.size() - 1 < index) diff --git a/HanddleAI/HandleAiUi-new/uiModule/uiModule_historyListWidget.h b/HanddleAI/HandleAiUi-new/uiModule/uiModule_historyListWidget.h index 54be4d28..23c723b1 100644 --- a/HanddleAI/HandleAiUi-new/uiModule/uiModule_historyListWidget.h +++ b/HanddleAI/HandleAiUi-new/uiModule/uiModule_historyListWidget.h @@ -52,7 +52,8 @@ class historyShowListSubThread : public QThread public: QMutex queueMutex; QQueue> queue; - void run() +private: + void run() override { while (queue.size() > 0) { @@ -66,7 +67,7 @@ public: continue; QPixmap map; cvMatToQPixMap(mat, map); - addDataSignal((data.second.find("OK") != std::string::npos), data.second, map); + addDataSignal((data.second.find("OK") != std::string::npos), QString::fromStdString(data.second), map); } else if (data.first == 1) { @@ -99,7 +100,7 @@ public slots: this->start(); } signals: - void addDataSignal(bool isOk, std::string filePath, QPixmap img); + void addDataSignal(bool isOk,QString, QPixmap img); void readImgSignal(QPixmap img); }; class historyShowListWidget : public QWidget @@ -127,9 +128,8 @@ public: QObject::connect(this, &historyShowListWidget::asyncReadImgSignal, &_historyShowListSubThread, &historyShowListSubThread::asyncReadImg); QObject::connect(this, &historyShowListWidget::asyncReadIconsSignal, &_historyShowListSubThread, &historyShowListSubThread::asyncReadIcons); - QObject::connect(&_historyShowListSubThread, &historyShowListSubThread::addDataSignal, this, &historyShowListWidget::addData); QObject::connect(showDataListWidget, &QListWidget::itemClicked, this, &historyShowListWidget::itemClick); - + QObject::connect(&_historyShowListSubThread, &historyShowListSubThread::addDataSignal, this, &historyShowListWidget::addData); } public slots: void addImgFromPath(QString path) @@ -142,14 +142,14 @@ public slots: emit asyncReadIconsSignal(files); } - void addData(bool isOk, std::string filePath, QPixmap img) + void addData(bool isOk, QString path, QPixmap img) { QString title; if (isOk == true) title = "OK"; else title = "NG"; - QWidget* widget = new historyItemWidget(title, filePath, img, size()); + QWidget* widget = new historyItemWidget(title, path.toStdString(), img, size()); QListWidgetItem* item = new QListWidgetItem(); showDataListWidget->addItem(item); showDataListWidget->setItemWidget(item, widget); @@ -171,6 +171,7 @@ private slots: { QString path = label->text(); emit asyncReadImgSignal(path.toStdString()); + emit itemClickSignal(path); } } } diff --git a/HanddleAI/HandleAiUi-new/uiModule/uiModule_menuListWdiget.h b/HanddleAI/HandleAiUi-new/uiModule/uiModule_menuListWdiget.h index 4503f6f0..e71c4900 100644 --- a/HanddleAI/HandleAiUi-new/uiModule/uiModule_menuListWdiget.h +++ b/HanddleAI/HandleAiUi-new/uiModule/uiModule_menuListWdiget.h @@ -108,11 +108,13 @@ public: return; //写入 + std::string fileName = fileManager::getFileName(path.toStdString()); pathList.clear(); - depth = list.size() - 1; for (auto str : list) - pathList.append(str); + if (str.contains(QString::fromStdString(fileName)) == false) + pathList.append(str); + depth = pathList.size() - 1; refreshListWidget(); } private: