From 35ada293e55201b150f6bde468a5b8f358a7df5d Mon Sep 17 00:00:00 2001 From: "15089880081@163.com" <15089880081@163.com> Date: Wed, 22 May 2024 18:09:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=A0=E8=BD=BD=E5=8A=A8?= =?UTF-8?q?=E7=94=BB=EF=BC=8C=E4=BC=98=E5=8C=96=E5=90=AF=E5=8A=A8=E9=80=9F?= =?UTF-8?q?=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HandleAiUi-new/back/backEndManager.h | 1 + .../HandleAiUi-new/front/loadingWidget.h | 108 ++++++++++++------ HanddleAI/HandleAiUi-new/main.cpp | 1 + HanddleAI/HandleAiUi-new/mainwindow.cpp | 2 +- HanddleAI/HandleAiUi-new/mainwindow.h | 29 ++++- 5 files changed, 100 insertions(+), 41 deletions(-) diff --git a/HanddleAI/HandleAiUi-new/back/backEndManager.h b/HanddleAI/HandleAiUi-new/back/backEndManager.h index b4f15bea..ecbd54f4 100644 --- a/HanddleAI/HandleAiUi-new/back/backEndManager.h +++ b/HanddleAI/HandleAiUi-new/back/backEndManager.h @@ -35,5 +35,6 @@ signals: void sendErrorToMainwindow(backEndError); void sendPixmapImageWidget(showImgPack*); void sendInitFinished(bool); + void sendInitString(QString);//初始化日志 }; #endif \ No newline at end of file diff --git a/HanddleAI/HandleAiUi-new/front/loadingWidget.h b/HanddleAI/HandleAiUi-new/front/loadingWidget.h index 1dba1048..b4e4b120 100644 --- a/HanddleAI/HandleAiUi-new/front/loadingWidget.h +++ b/HanddleAI/HandleAiUi-new/front/loadingWidget.h @@ -2,6 +2,10 @@ #include #include #include +#include +#include +#include ; +#include static QPixmap cvMatToQPixmap(const cv::Mat& mat) { QImage qImg; if (mat.channels() == 3) { @@ -16,44 +20,80 @@ static QPixmap cvMatToQPixmap(const cv::Mat& mat) { class loadingWidget : public QWidget { public: QLabel* sign; + QMovie* movie; + QTextEdit* initLog; + QGridLayout* glayout = new QGridLayout(this); loadingWidget(QWidget* parent = nullptr) : QWidget(parent) { - sign = new QLabel(this); + glayout->setAlignment(Qt::AlignCenter); } - - void setStatus(QWidget* widget) { - screenshot_ = QPixmap::grabWindow(widget->winId()); - update(); // 更新widget以显示新的截图 - } - -protected: - void paintEvent(QPaintEvent* event) override { - if (screenshot_.isNull()) - return; - QImage image = screenshot_.toImage(); - image = image.convertToFormat(QImage::Format_RGB888); - cv::Mat originalMat = cv::Mat( - image.height(), - image.width(), - CV_8UC3, - image.bits(), - image.bytesPerLine()); - cv::Mat blurredMat; - cv::blur(originalMat, blurredMat, cv::Size(15, 15)); // 调整模糊半径以获得不同程度的模糊效果 - QPixmap blurredPixmap = cvMatToQPixmap(blurredMat); - QPainter painter(this); - painter.drawPixmap(0, 0, blurredPixmap); - - // 在模糊图片上绘制文字 + void start(QWidget* widget) + { QPalette palette; palette.setColor(QPalette::WindowText, Qt::white); - QFont font("微软雅黑", 100, QFont::Bold); - QFont font2("微软雅黑", 90, QFont::Bold); - painter.setFont(font); - painter.setPen(Qt::black); - painter.drawText(this->rect(), Qt::AlignCenter, "WAIT"); - painter.setFont(font2); - painter.setPen(Qt::white); - painter.drawText(this->rect(), Qt::AlignCenter, "WAIT"); + sign = new QLabel(this); + sign->setAlignment(Qt::AlignBottom| Qt::AlignHCenter); + + movie = new QMovie(":/topBar/icon/loading.gif"); + movie->setScaledSize(QSize(100, 100)); + movie->start(); + + sign->setMovie(movie); + + initLog = new QTextEdit(); + initLog->setAlignment(Qt::AlignCenter); + initLog->setStyleSheet(QString("background-color: transparent;" + "border: 0px solid red;" + "border-radius: 0px;")); + initLog->setReadOnly(true); + QFont font("微软雅黑", 8); + + initLog->setFont(font); + //initLog->setPalette(palette); + initLog->setTextColor(Qt::white); // 设置文字颜色为蓝色 + + initLog->append("测试测试"); + glayout->addWidget(sign, 0, 0); + glayout->addWidget(initLog, 1, 0); + glayout->setRowStretch(0, 5); + glayout->setRowStretch(1, 4); + screenshot_ = QPixmap::grabWindow(widget->winId()); + update(); // 更新widget以显示新的截图 + + } + void stop() + { + delete sign; + delete movie; + } +protected: + void paintEvent(QPaintEvent* event) override { + //if (screenshot_.isNull()) + // return; + //QImage image = screenshot_.toImage(); + //image = image.convertToFormat(QImage::Format_RGB888); + //cv::Mat originalMat = cv::Mat( + // image.height(), + // image.width(), + // CV_8UC3, + // image.bits(), + // image.bytesPerLine()); + //cv::Mat blurredMat; + //cv::blur(originalMat, blurredMat, cv::Size(10, 10)); // 调整模糊半径以获得不同程度的模糊效果 + //QPixmap blurredPixmap = cvMatToQPixmap(blurredMat); + //QPainter painter(this); + //painter.drawPixmap(0, 0, blurredPixmap); + QWidget::paintEvent(event); // 调用父类的 paintEvent 函数,绘制控件本身 + //// 在模糊图片上绘制文字 + //QPalette palette; + //palette.setColor(QPalette::WindowText, Qt::white); + //QFont font("微软雅黑", 100, QFont::Bold); + //QFont font2("微软雅黑", 90, QFont::Bold); + //painter.setFont(font); + //painter.setPen(Qt::black); + //painter.drawText(this->rect(), Qt::AlignCenter, "WAIT"); + //painter.setFont(font2); + //painter.setPen(Qt::white); + //painter.drawText(this->rect(), Qt::AlignCenter, "WAIT"); } private: diff --git a/HanddleAI/HandleAiUi-new/main.cpp b/HanddleAI/HandleAiUi-new/main.cpp index 73d4e0c0..0ea92011 100644 --- a/HanddleAI/HandleAiUi-new/main.cpp +++ b/HanddleAI/HandleAiUi-new/main.cpp @@ -16,6 +16,7 @@ void connectSignalAndSlots(MainWindow* front, backEndManager* back) { QObject::connect(back, &backEndManager::sendPixmapImageWidget, front, &MainWindow::recvPixmapImageWidget); + QObject::connect(back, &backEndManager::sendInitString, front, &MainWindow::recvInitString); QObject::connect(back, &backEndManager::sendInitFinished, front, &MainWindow::recvInitFinished); } int main(int argc, char* argv[]) diff --git a/HanddleAI/HandleAiUi-new/mainwindow.cpp b/HanddleAI/HandleAiUi-new/mainwindow.cpp index be6a8157..d075136b 100644 --- a/HanddleAI/HandleAiUi-new/mainwindow.cpp +++ b/HanddleAI/HandleAiUi-new/mainwindow.cpp @@ -237,7 +237,7 @@ void MainWindow::leftBarInit() } pageBtns[index]->pressed(); pageWidgets.setCurrentIndex(index); - qInfo() << "switch Page to Index:" << index; + //qInfo() << "switch Page to Index:" << index; qDebug() << "switch Page to Index:" << index; }); } diff --git a/HanddleAI/HandleAiUi-new/mainwindow.h b/HanddleAI/HandleAiUi-new/mainwindow.h index bd444230..407071eb 100644 --- a/HanddleAI/HandleAiUi-new/mainwindow.h +++ b/HanddleAI/HandleAiUi-new/mainwindow.h @@ -59,6 +59,7 @@ private: QWidget* mainWidget; QWidget* mainWidget2; + bool backEndInit = false; bool isMoving = false; QPoint startPos; QRect startFrameGeometry; @@ -91,14 +92,15 @@ public slots: { if (input == true) { - blurEffectAnimation->setStartValue(0); + /*blurEffectAnimation->setStartValue(0); blurEffectAnimation->setEndValue(20); blurEffectAnimation->start(); + _loadingWidget.setStatus(&stackedWidgets); stackedWidgets.setCurrentIndex(1); blurEffectAnimation->setStartValue(20); blurEffectAnimation->setEndValue(0); - blurEffectAnimation->start(); - + blurEffectAnimation->start();*/ + loading(true); } else if(input == false)stackedWidgets.setCurrentIndex(0); } @@ -109,14 +111,24 @@ public slots: blurEffectAnimation->setStartValue(0); blurEffectAnimation->setEndValue(20); blurEffectAnimation->start(); - _loadingWidget.setStatus(&stackedWidgets); + _loadingWidget.start(&stackedWidgets); stackedWidgets.setCurrentIndex(1); - blurEffectAnimation->setStartValue(20); + blurEffectAnimation->setStartValue(0); blurEffectAnimation->setEndValue(0); blurEffectAnimation->start(); } - else if (input == false)stackedWidgets.setCurrentIndex(2); + else if (input == false) + { + blurEffectAnimation->setStartValue(0); + blurEffectAnimation->setEndValue(0); + blurEffectAnimation->start(); + _loadingWidget.stop(); + stackedWidgets.setCurrentIndex(2); + blurEffectAnimation->setStartValue(20); + blurEffectAnimation->setEndValue(0); + blurEffectAnimation->start(); + } } void recvPixmapImageWidget(showImgPack* pack) @@ -125,6 +137,11 @@ public slots: delete pack; } void recvInitFinished(bool input) + { + backEndInit = true; + //loading(false); + } + void recvInitString(QString) { }