187 lines
5.2 KiB
C++
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
|