Files
handleaiuinew/HanddleAI/HandleAiUi-new/mainwindow.h
T

187 lines
5.2 KiB
C++

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QApplication>
#include <QDir>
#include <QTimer>
#include <QVBoxLayout>
#include <QScopedPointer>
#include <QJsonObject>
#include <QProcess>
#include <iostream>
#include <qevent.h>
#include <FrontendBackendBridge.h>
#include <qpushbutton.h>
#include <unordered_map>
#include <uiModule/components/toolBarButton.h>
#include <pages/displayPageWidget.h>
#include <pages/configSettingWidget.h>
#include <QStackedWidget>
#include <pages/logPageWidget.h>
#include <LoginWindow.h>
#include <QPropertyAnimation>
#include <loadingWidget.h>
#pragma execution_character_set("utf-8")
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
//主要控件
std::vector<toolBarButton*>pageBtns;
QStackedWidget stackedWidgets;//一共三层,加载界面,登录界面,主要界面
QStackedWidget pageWidgets;//主要界面中的页面
loginWindow _loginWindow;//登录界面
loadingWidget _loadingWidget;//加载 等待界面
//页面
displayWidget* _displayWidget;
configSettingWidget* _configSettingWidget;
logWidget* _logWidget;
private:
Ui::MainWindow* ui;
//动画效果
QGraphicsBlurEffect* blurEffect;
QPropertyAnimation* blurEffectAnimation;
QPushButton* maximizeRestoreButton;
QVBoxLayout* mainLayout;
QHBoxLayout* mainLayout2;
QWidget* mainWidget;
QWidget* mainWidget2;
bool backEndInit = false;
bool isMoving = false;
QPoint startPos;
QRect startFrameGeometry;
void topBarInit();
void leftBarInit();
public slots:
void minimizeWindow()
{
showMinimized();
}
void toggleMaximize()
{
if (isMaximized()) {
showNormal();
maximizeRestoreButton->setIcon(QPixmap(":/topBar/icon/fullscreen.png")); // 设置图标
}
else {
showMaximized();
maximizeRestoreButton->setIcon(QPixmap(":/topBar/icon/fullscreen-exit.png")); // 设置图标
}
_displayWidget->windowChanged();
}
void switchstackedWidgets(int index)
{
stackedWidgets.setCurrentIndex(index);
}
void login(bool input)
{
if (input == true)
{
/*blurEffectAnimation->setStartValue(0);
blurEffectAnimation->setEndValue(20);
blurEffectAnimation->start();
_loadingWidget.setStatus(&stackedWidgets);
stackedWidgets.setCurrentIndex(1);
blurEffectAnimation->setStartValue(20);
blurEffectAnimation->setEndValue(0);
blurEffectAnimation->start();*/
loading(true);
}
else if(input == false)stackedWidgets.setCurrentIndex(0);
}
void loading(bool input)
{
if (input == true)
{
blurEffectAnimation->setStartValue(0);
blurEffectAnimation->setEndValue(20);
blurEffectAnimation->start();
//_loadingWidget.start();
stackedWidgets.setCurrentIndex(1);
blurEffectAnimation->setStartValue(0);
blurEffectAnimation->setEndValue(0);
blurEffectAnimation->start();
}
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)
{
_displayWidget->_ImageWidgetManager.showImg(pack->img, pack->type, pack->index);
delete pack;
}
void recvInitFinished(int input)
{
switch (input)
{
case initStatus::InitOK:
backEndInit = true;
loading(false);
break;
default:
_loadingWidget.setError();
backEndInit = false;
}
}
void recvInitString(QString strIn)
{
if (_loadingWidget.isRunning != false);
{
_loadingWidget.initLog->append(strIn);
}
}
signals:
void reInitSignal();
protected:
void mousePressEvent(QMouseEvent* event) override {
if (event->buttons() == Qt::LeftButton) {
startPos = event->globalPos();
startFrameGeometry = frameGeometry();
isMoving = true;
}
QMainWindow::mousePressEvent(event);
}
void mouseMoveEvent(QMouseEvent* event) override {
if (event->buttons() == Qt::LeftButton && isMoving) {
move(startFrameGeometry.topLeft() + (event->globalPos() - startPos));
}
QMainWindow::mouseMoveEvent(event);
}
void mouseReleaseEvent(QMouseEvent* event) override {
if (event->button() == Qt::LeftButton) {
isMoving = false;
}
QMainWindow::mouseReleaseEvent(event);
}
void resizeEvent(QResizeEvent* event) override {
QMainWindow::resizeEvent(event);
}
};
#endif // MAINWINDOW_H