comac_desk_app/PostProcessing/mainwindow.cpp

174 lines
6.1 KiB
C++
Raw Normal View History

2024-11-21 11:50:43 +08:00
#include "MainWindow.h"
#include <QDebug>
#include <QGraphicsView>
#include <QHBoxLayout>
#include <QStackedWidget>
#include <QStatusBar>
#include <QVBoxLayout>
#include "ElaContentDialog.h"
#include "ElaDockWidget.h"
#include "ElaEventBus.h"
#include "ElaLog.h"
#include "ElaMenu.h"
#include "ElaMenuBar.h"
#include "ElaProgressBar.h"
#include "ElaStatusBar.h"
#include "ElaText.h"
#include "ElaTheme.h"
#include "ElaToolBar.h"
#include "ElaToolButton.h"
#include "ElaMessageBar.h"
//#include "T_Navigation.h"
#include "CenterWidget.h"
void SendMsgToParentProcess(QString msg)
{
fputs(msg.toLocal8Bit(), stdout);
fflush(stdout);
}
namespace pst
{
MainWindow::MainWindow(QWidget* parent)
: ElaWindow(parent)
{
initWindow();
initToolBar();
initStatusBar();
//中心窗口
initContentWidget();
// 拦截默认关闭事件
_closeDialog = new ElaContentDialog(this);
connect(_closeDialog, &ElaContentDialog::rightButtonClicked, this, &MainWindow::closeWindow);
connect(_closeDialog, &ElaContentDialog::middleButtonClicked, this, &MainWindow::showMinimized);
this->setIsDefaultClosed(false);
connect(this, &MainWindow::closeButtonClicked, this, [=]() {
_closeDialog->exec();
});
//移动到中心
moveToCenter();
SendMsgToParentProcess(QString("{--}winId{||}%1{--}\n").arg(winId()));
}
MainWindow::~MainWindow()
{
}
void MainWindow::initWindow()
{
setIsNavigationBarEnable(false);
setWindowButtonFlags(ElaAppBarType::StayTopButtonHint | ElaAppBarType::MinimizeButtonHint | ElaAppBarType::MaximizeButtonHint | ElaAppBarType::CloseButtonHint);
setAppBarHeight(30);
setWindowIcon(QIcon(":/include/Image/Cirno.jpg"));
resize(1678, 921);
setWindowTitle("统一后处理平台");
}
void MainWindow::initStatusBar()
{
//状态栏
ElaStatusBar* statusBar = new ElaStatusBar(this);
ElaText* statusText = new ElaText("初始化成功!", this);
statusText->setTextPixelSize(14);
statusBar->addWidget(statusText);
this->setStatusBar(statusBar);
}
void MainWindow::slot_toolBtnClick()
{
ElaToolButton* _btn = dynamic_cast<ElaToolButton*>(sender());
if (_btn)
{
ElaMessageBar::success(ElaMessageBarType::PositionPolicy::BottomLeft, _btn->text(), "成功", 1000, this);
}
}
void MainWindow::initToolBar()
{
//工具栏
ElaToolBar* toolBar = new ElaToolBar("工具栏", this);
toolBar->setAllowedAreas(Qt::TopToolBarArea | Qt::BottomToolBarArea);
toolBar->setAllowedAreas(Qt::NoToolBarArea);
toolBar->setToolBarSpacing(5);
toolBar->setToolButtonStyle(Qt::ToolButtonIconOnly);
toolBar->setIconSize(QSize(25, 25));
toolBar->setFloatable(false);
toolBar->setMovable(false);
toolBar->setContentsMargins(QMargins(5, 5, 5, 5));
ElaToolButton* toolButton1 = new ElaToolButton(this);
toolButton1->setElaIcon(ElaIconType::FileImport);
toolButton1->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
toolButton1->setText("数据导入");
toolBar->addWidget(toolButton1);
connect(toolButton1, &ElaToolButton::clicked, this, &MainWindow::slot_toolBtnClick);
ElaToolButton* toolButton2 = new ElaToolButton(this);
toolButton2->setElaIcon(ElaIconType::FileExport);
toolButton2->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
toolButton2->setText("数据导出");
toolBar->addWidget(toolButton2);
ElaToolButton* toolButton3 = new ElaToolButton(this);
toolButton3->setElaIcon(ElaIconType::ArrowDownToBracket);
toolButton3->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
toolButton3->setText("工程结果导入");
toolBar->addWidget(toolButton3);
ElaToolButton* toolButton4 = new ElaToolButton(this);
toolButton4->setElaIcon(ElaIconType::SquareStar);
toolButton4->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
toolButton4->setText("标准格式查看");
toolBar->addWidget(toolButton4);
toolBar->addSeparator();
ElaToolButton* toolButton5 = new ElaToolButton(this);
toolButton5->setElaIcon(ElaIconType::Bee);
toolButton5->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
toolButton5->setText("三维图");
toolBar->addWidget(toolButton5);
ElaToolButton* toolButton6 = new ElaToolButton(this);
toolButton6->setElaIcon(ElaIconType::Bird);
toolButton6->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
toolButton6->setText("二维图");
toolBar->addWidget(toolButton6);
ElaToolButton* toolButton7 = new ElaToolButton(this);
toolButton7->setElaIcon(ElaIconType::BurgerCheese);
toolButton7->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
toolButton7->setText("极坐标图");
toolBar->addWidget(toolButton7);
toolBar->addSeparator();
ElaToolButton* toolButton8 = new ElaToolButton(this);
toolButton8->setElaIcon(ElaIconType::ScannerTouchscreen);
toolButton8->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
toolButton8->setText("截图");
toolBar->addWidget(toolButton8);
ElaToolButton* toolButton9 = new ElaToolButton(this);
toolButton9->setElaIcon(ElaIconType::SquarePollHorizontal);
toolButton9->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
toolButton9->setText("截图至报告");
toolBar->addWidget(toolButton9);
ElaToolButton* toolButton10 = new ElaToolButton(this);
toolButton10->setElaIcon(ElaIconType::Image);
toolButton10->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
toolButton10->setText("图片保存");
toolBar->addWidget(toolButton10);
this->addToolBar(Qt::TopToolBarArea, toolBar);
}
void MainWindow::initContentWidget()
{
m_centerWidget = new CenterWidget(this);
addPageNode("CenterWidget", m_centerWidget, ElaIconType::LocationArrow);
}
}