#include "MainWindow.h" #include #include #include #include #include #include #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(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); } }