174 lines
6.1 KiB
C++
174 lines
6.1 KiB
C++
#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);
|
|
}
|
|
} |