From c1969b261041eb87b38848db4d70bb3d874cb5c9 Mon Sep 17 00:00:00 2001 From: RCi <15089880081@163.com> Date: Sun, 19 May 2024 14:03:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=A8=E7=94=BB=E6=95=88?= =?UTF-8?q?=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HandleAiUi-new/front/displayPageWidget.h | 0 .../HandleAiUi-new/front/loginWindow.cpp | 1 + HanddleAI/HandleAiUi-new/front/loginWindow.h | 85 ++++++++++++++ HanddleAI/HandleAiUi-new/main.cpp | 1 - HanddleAI/HandleAiUi-new/mainwindow.cpp | 44 +++++--- HanddleAI/HandleAiUi-new/mainwindow.h | 36 +++++- .../uiModule/uiModule_LoginWindow.h | 105 ------------------ 7 files changed, 147 insertions(+), 125 deletions(-) delete mode 100644 HanddleAI/HandleAiUi-new/front/displayPageWidget.h create mode 100644 HanddleAI/HandleAiUi-new/front/loginWindow.cpp create mode 100644 HanddleAI/HandleAiUi-new/front/loginWindow.h delete mode 100644 HanddleAI/HandleAiUi-new/uiModule/uiModule_LoginWindow.h diff --git a/HanddleAI/HandleAiUi-new/front/displayPageWidget.h b/HanddleAI/HandleAiUi-new/front/displayPageWidget.h deleted file mode 100644 index e69de29b..00000000 diff --git a/HanddleAI/HandleAiUi-new/front/loginWindow.cpp b/HanddleAI/HandleAiUi-new/front/loginWindow.cpp new file mode 100644 index 00000000..62283bd3 --- /dev/null +++ b/HanddleAI/HandleAiUi-new/front/loginWindow.cpp @@ -0,0 +1 @@ +#include \ No newline at end of file diff --git a/HanddleAI/HandleAiUi-new/front/loginWindow.h b/HanddleAI/HandleAiUi-new/front/loginWindow.h new file mode 100644 index 00000000..dfe90bbd --- /dev/null +++ b/HanddleAI/HandleAiUi-new/front/loginWindow.h @@ -0,0 +1,85 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class loginWindow : public QWidget { + Q_OBJECT +public: + QVBoxLayout* layout; + QLineEdit passwordEdit; + fancyButtonText* button, * exitBtn; + QLabel* label; + QComboBox* comboBox; + QLabel tipLabel; + loginWindow() + { + this->setObjectName("LoginWindow"); + this->setStyleSheet(QString("QWidget#LoginWindow {background-color: rgb(%1)}").arg(sColor_blue)); + + QPalette palette; + palette.setColor(QPalette::WindowText, Qt::white); + + layout= new QVBoxLayout(this); + button = new fancyButtonText(100,40,"确定",""); + + label=new QLabel("欢迎!"); + label->setAlignment(Qt::AlignHCenter); + label->setFont(QFont("Microsoft YaHei", 30, QFont::Bold)); + label->setPalette(palette); + + comboBox= new QComboBox; + comboBox->addItems({ u8"工程师",u8"售后",u8"调试" }); + comboBox->setFont(QFont("Microsoft YaHei", 14)); + comboBox->setStyleSheet("QComboBox { padding-left: 4px; padding-right: 4px; }" + "QComboBox::drop-down { subcontrol-origin: padding; subcontrol-position: right; }" + "QComboBox::down-arrow { image: url(./arrow.png); }" + "QComboBox::down-arrow:on { top: 1px; left: 1px; }" + "QComboBox QAbstractItemView { padding: 2px; }" + "QComboBox::item { padding: 2px 4px; },"); + comboBox->setFixedHeight(40); + + layout->addWidget(label); + layout->addWidget(comboBox); + + passwordEdit.setFixedHeight(40); + passwordEdit.setFont(QFont("Microsoft YaHei", 12, QFont::Bold)); + layout->addWidget(&passwordEdit); + + exitBtn = new fancyButtonText(100, 40, u8"退出", ""); + QObject::connect(exitBtn, &QPushButton::clicked, [=]() { + exit(0); + }); + + QHBoxLayout* buttonLayout = new QHBoxLayout(); + buttonLayout->addWidget(button); + QHBoxLayout* extButtonLayout = new QHBoxLayout(); + extButtonLayout->addWidget(exitBtn); + layout->addLayout(buttonLayout); + layout->addLayout(extButtonLayout); + layout->setAlignment(Qt::AlignCenter); + + + QObject::connect(button, &QPushButton::clicked, this, &loginWindow::comparePassword); + //this->show(); + } + +private slots: + void comparePassword() + { + emit login(true); + } +signals: + void login(bool); +}; +#pragma once \ No newline at end of file diff --git a/HanddleAI/HandleAiUi-new/main.cpp b/HanddleAI/HandleAiUi-new/main.cpp index 1f7ba22d..6522a454 100644 --- a/HanddleAI/HandleAiUi-new/main.cpp +++ b/HanddleAI/HandleAiUi-new/main.cpp @@ -9,7 +9,6 @@ #include #include #include -#include int main ( int argc, char *argv[] ) { QApplication a(argc, argv); diff --git a/HanddleAI/HandleAiUi-new/mainwindow.cpp b/HanddleAI/HandleAiUi-new/mainwindow.cpp index 978fcc1d..b908bdef 100644 --- a/HanddleAI/HandleAiUi-new/mainwindow.cpp +++ b/HanddleAI/HandleAiUi-new/mainwindow.cpp @@ -26,27 +26,41 @@ MainWindow::MainWindow(QWidget* parent) this->setMaximumSize(9999, 9999); this->setObjectName("MainWidget"); this->setStyleSheet(QString("QWidget#MainWidget {background-color: rgb(%1)}").arg(sColor_blue)); + this->setCentralWidget(&stackedWidgets); + + //加载界面初始化 + + + //登录界面 + stackedWidgets.addWidget(&_loginWindow); + connect(&_loginWindow, &loginWindow::login, this, &MainWindow::login); //第一层 只有顶部菜单栏和第二层layout - mainWdiget = new QWidget(this); - this, setCentralWidget(mainWdiget); - mainLayout = new QVBoxLayout(mainWdiget); + mainWidget = new QWidget(); + stackedWidgets.addWidget(mainWidget); + mainLayout = new QVBoxLayout(mainWidget); mainLayout->setContentsMargins(0, 0, 0, 0); topBarInit(); //第二层 只有左侧菜单栏和主界面 - mainWdiget2 = new QWidget(this); - mainLayout2 = new QHBoxLayout(mainWdiget2); + mainWidget2 = new QWidget(); + mainLayout2 = new QHBoxLayout(mainWidget2); mainLayout2->setAlignment(Qt::AlignLeft); mainLayout2->setContentsMargins(0, 0, 0, 0); - mainLayout->addWidget(mainWdiget2); + mainLayout->addWidget(mainWidget2); - mainWidgets = new QStackedWidget(); leftBarInit(); - mainLayout2->addWidget(mainWidgets); - //显示界面初始化 - - //_displayWidget->windowChanged(); + mainLayout2->addWidget(&pageWidgets); + + //动画 + blurEffect = new QGraphicsBlurEffect(); + //毛玻璃效果 + this->setGraphicsEffect(blurEffect); + blurEffectAnimation = new QPropertyAnimation(blurEffect, "blurRadius"); + blurEffectAnimation->setDuration(50); + blurEffectAnimation->setEndValue(0); + blurEffectAnimation->start(); + } MainWindow::~MainWindow() @@ -180,7 +194,7 @@ void MainWindow::leftBarInit() QIcon(":/topBar/icon/home.png"), u8"主界面"); _displayWidget = new displayWidget(); - mainWidgets->addWidget(_displayWidget); + pageWidgets.addWidget(_displayWidget); pageBtns.push_back(toMainBtn); //配置页面 @@ -190,7 +204,7 @@ void MainWindow::leftBarInit() QIcon(":/topBar/icon/setting.png"), u8"配置设置"); _configSettingWidget = new configSettingWidget(); - mainWidgets->addWidget(_configSettingWidget); + pageWidgets.addWidget(_configSettingWidget); pageBtns.push_back(configBtn); //日志页面 @@ -200,7 +214,7 @@ void MainWindow::leftBarInit() QIcon(":/topBar/icon/config.png"), u8"日志"); _logWidget = new logWidget(); - mainWidgets->addWidget(_logWidget); + pageWidgets.addWidget(_logWidget); pageBtns.push_back(logBtn); for (int index = 0; index < pageBtns.size(); index++) @@ -214,7 +228,7 @@ void MainWindow::leftBarInit() pageBtns[index2]->toDefault(); } pageBtns[index]->pressed(); - mainWidgets->setCurrentIndex(index); + pageWidgets.setCurrentIndex(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 dc7ee3ab..aada6b94 100644 --- a/HanddleAI/HandleAiUi-new/mainwindow.h +++ b/HanddleAI/HandleAiUi-new/mainwindow.h @@ -19,6 +19,8 @@ #include #include #include +#include +#include #pragma execution_character_set("utf-8") enum DRAG_ABSOLUTE_POSITION @@ -42,12 +44,20 @@ public: ~MainWindow(); private: Ui::MainWindow *ui; + //涓昏鎺т欢 std::vectorpageBtns; + QStackedWidget stackedWidgets;//涓�鍏变笁灞傦紝鍔犺浇鐣岄潰锛岀櫥褰曠晫闈紝涓昏鐣岄潰 + QStackedWidget pageWidgets;//涓昏鐣岄潰涓殑椤甸潰 + loginWindow _loginWindow; + + //鍔ㄧ敾鏁堟灉 + QGraphicsBlurEffect* blurEffect; + QPropertyAnimation* blurEffectAnimation; QVBoxLayout* mainLayout; QHBoxLayout* mainLayout2; - QWidget* mainWdiget; - QWidget* mainWdiget2; + QWidget* mainWidget; + QWidget* mainWidget2; displayWidget* _displayWidget; configSettingWidget* _configSettingWidget; @@ -55,7 +65,7 @@ private: QPushButton* maximizeRestoreButton; - QStackedWidget* mainWidgets; + bool isMoving = false; QPoint startPos; QRect startFrameGeometry; @@ -67,7 +77,6 @@ public slots: { showMinimized(); } - void toggleMaximize() { if (isMaximized()) { @@ -80,6 +89,25 @@ public slots: } _displayWidget->windowChanged(); } + void switchstackedWidgets(int index) + { + stackedWidgets.setCurrentIndex(index); + } + void login(bool input) + { + if (input == true) + { + blurEffectAnimation->setStartValue(0); + blurEffectAnimation->setEndValue(20); + blurEffectAnimation->start(); + stackedWidgets.setCurrentIndex(1); + blurEffectAnimation->setStartValue(20); + blurEffectAnimation->setEndValue(0); + blurEffectAnimation->start(); + + } + else if(input == false)stackedWidgets.setCurrentIndex(0); + } signals: protected: diff --git a/HanddleAI/HandleAiUi-new/uiModule/uiModule_LoginWindow.h b/HanddleAI/HandleAiUi-new/uiModule/uiModule_LoginWindow.h deleted file mode 100644 index f55e1578..00000000 --- a/HanddleAI/HandleAiUi-new/uiModule/uiModule_LoginWindow.h +++ /dev/null @@ -1,105 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -QPixmap matToPixmap(const cv::Mat& mat) { - // 将OpenCV的Mat转换为Qt的QImage - QImage img(mat.data, mat.cols, mat.rows, mat.step, QImage::Format_RGB888); - img = img.rgbSwapped(); // 颜色通道顺序转换(OpenCV使用BGR,而QImage使用RGB) - - // 将QImage转换为QPixmap - return QPixmap::fromImage(img); -} - -class loginDialog : public QDialog { -public: - QVBoxLayout* layout; - QLineEdit* lineEdit; - QPushButton* button; - QLabel* label; - QComboBox* comboBox; - QPushButton* exitBtn; - loginDialog(QWidget* parent = nullptr) : QDialog(parent) { - this->setFixedSize(QSize(450, 300)); - this->setWindowFlags(Qt::FramelessWindowHint); - this->setStyleSheet("QDialog {" - " background-color: white;" - " border: 2px solid orange;" - " border-radius: 10px;" - "}"); - layout= new QVBoxLayout(this); - lineEdit =new QLineEdit (this); - //button = new CustomButton("确定", this); - // 设置QPushButton为全透明 - - - label=new QLabel("欢迎!"); - label->setAlignment(Qt::AlignHCenter); - label->setFont(QFont("Microsoft YaHei", 18, QFont::Bold)); - - comboBox= new QComboBox; - comboBox->addItems({ u8"工程师",u8"售后",u8"调试" }); - comboBox->setFont(QFont("Microsoft YaHei", 14)); - comboBox->setStyleSheet("QComboBox { padding-left: 4px; padding-right: 4px; }" - "QComboBox::drop-down { subcontrol-origin: padding; subcontrol-position: right; }" - "QComboBox::down-arrow { image: url(./arrow.png); }" - "QComboBox::down-arrow:on { top: 1px; left: 1px; }" - "QComboBox QAbstractItemView { padding: 2px; }" - "QComboBox::item { padding: 2px 4px; },"); - comboBox->setFixedHeight(40); - - layout->addWidget(label); - layout->addWidget(comboBox); - lineEdit->setFixedHeight(40); - lineEdit->setFont(QFont("Microsoft YaHei", 12, QFont::Bold)); - layout->addWidget(lineEdit); - - exitBtn = new QPushButton(u8"退出"); - exitBtn->setFixedWidth(30); - exitBtn->setStyleSheet("QPushButton { background-color: transparent; border: none; }"); - - QHBoxLayout* buttonLayout = new QHBoxLayout(); - buttonLayout->addWidget(button); - QHBoxLayout* extButtonLayout = new QHBoxLayout(); - extButtonLayout->addWidget(exitBtn); - layout->addLayout(buttonLayout); - layout->addLayout(extButtonLayout); - layout->setAlignment(Qt::AlignCenter); - QObject::connect(button, &QPushButton::clicked, this, &QDialog::accept); - this->show(); - } - -protected: - void paintEvent(QPaintEvent* event) override { - Q_UNUSED(event); - - QPainterPath roundedPath; - - // 构建一个圆角矩形的路径 - int radius = 10; // 圆角半径 - roundedPath.addRoundedRect(rect(), radius, radius); - - // 设置裁剪区域 - QPainter painter(this); - painter.setRenderHint(QPainter::Antialiasing); - painter.setClipPath(roundedPath); - - // 在窗口上绘制内容 - painter.fillRect(rect(), Qt::white); // 设置窗口背景色 - - int lineRadius=8; - int borderWidth = 8; // 调整边框宽度 - QPen borderPen(QColor(235, 92, 32)); // 橙色 - borderPen.setWidth(borderWidth); - painter.setPen(borderPen); - painter.setBrush(Qt::NoBrush); - painter.drawRoundedRect(rect().adjusted(borderWidth / 2, borderWidth / 2, -borderWidth / 2, -borderWidth / 2), lineRadius, lineRadius); - } -}; -#pragma once \ No newline at end of file