#pragma once #include "ui_WindowApp.h" #include "Common.h" #include "WindowAppTreeTool.h" // 工具管理器的序号(用于进行窗口切换) #define APPTOOLBOX_VIEW_NULL -1 #define APPTOOLBOX_VIEW_VISION 0 #define APPTOOLBOX_VIEW_UI 1 /// /// 主窗体中的App界面 /// class WindowAppMdiFrame; class WindowAppResourceManagerTree; class WindowAppTreeTool; class WindowAppUiTool; class WindowApp : public QMainWindow { Q_OBJECT public: WindowApp(QWidget *parent = nullptr); ~WindowApp(); // 2022-9-20,根据用户切换的界面,自动激活对应的工具箱Tab // 激活Pou窗体时,激活视觉工具箱,激活UI窗体时,激活UI工具箱 void activeToolBoxView(int nTabIndex, WindowAppTreeTool::TREETOOL_MODE mode = WindowAppTreeTool::TREETOOL_MODE::MODE_POU); private: Ui::WindowApp ui; // void resizeEvent(QResizeEvent* event) override; private: // 创建界面布局 void createLayouts(); // 创建左上侧的资源管理器 void createResourceManager(); // 创建界面中的Mdi容器框架 void createMdiFrame(); // 创建左下角的工具管理器(工具栏) void createToolManager(); // 设置界面布局 void initLayouts(); void showToolsItem(); void onFindToolsItem(const QString& qsFilter); private: // 多窗口容器 WindowAppMdiFrame* m_pMdiFrame; //------ 资源管理器相关 // 资源管理器的总界面 QDockWidget* m_pDockResourceManager; // 资源管理器中的Tree控件(App中子界面的核心调度者) WindowAppResourceManagerTree* m_pResourceManagerTree; //------ 工具管理器相关 // 工具管理器的总界面 QDockWidget* m_pDockToolManager; // Toolbox的总Tab QStackedWidget* m_pAllToolBox; // 视觉工具的子Tab窗体 WindowAppTreeTool* m_pVisionSubTools; // UI工具的子Tab窗体 WindowAppUiTool* m_pUiSubTools; // Vision工具箱的搜索栏 QLineEdit* m_pToolSearchBar; };