WindowApp.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #pragma once
  2. #include "ui_WindowApp.h"
  3. #include "Common.h"
  4. #include "WindowAppTreeTool.h"
  5. // 工具管理器的序号(用于进行窗口切换)
  6. #define APPTOOLBOX_VIEW_NULL -1
  7. #define APPTOOLBOX_VIEW_VISION 0
  8. #define APPTOOLBOX_VIEW_UI 1
  9. /// <summary>
  10. /// 主窗体中的App界面
  11. /// </summary>
  12. class WindowAppMdiFrame;
  13. class WindowAppResourceManagerTree;
  14. class WindowAppTreeTool;
  15. class WindowAppUiTool;
  16. class WindowApp : public QMainWindow
  17. {
  18. Q_OBJECT
  19. public:
  20. WindowApp(QWidget *parent = nullptr);
  21. ~WindowApp();
  22. // 2022-9-20,根据用户切换的界面,自动激活对应的工具箱Tab
  23. // 激活Pou窗体时,激活视觉工具箱,激活UI窗体时,激活UI工具箱
  24. void activeToolBoxView(int nTabIndex, WindowAppTreeTool::TREETOOL_MODE mode = WindowAppTreeTool::TREETOOL_MODE::MODE_POU);
  25. private:
  26. Ui::WindowApp ui;
  27. // void resizeEvent(QResizeEvent* event) override;
  28. private:
  29. // 创建界面布局
  30. void createLayouts();
  31. // 创建左上侧的资源管理器
  32. void createResourceManager();
  33. // 创建界面中的Mdi容器框架
  34. void createMdiFrame();
  35. // 创建左下角的工具管理器(工具栏)
  36. void createToolManager();
  37. // 设置界面布局
  38. void initLayouts();
  39. void showToolsItem();
  40. void onFindToolsItem(const QString& qsFilter);
  41. private:
  42. // 多窗口容器
  43. WindowAppMdiFrame* m_pMdiFrame;
  44. //------ 资源管理器相关
  45. // 资源管理器的总界面
  46. QDockWidget* m_pDockResourceManager;
  47. // 资源管理器中的Tree控件(App中子界面的核心调度者)
  48. WindowAppResourceManagerTree* m_pResourceManagerTree;
  49. //------ 工具管理器相关
  50. // 工具管理器的总界面
  51. QDockWidget* m_pDockToolManager;
  52. // Toolbox的总Tab
  53. QStackedWidget* m_pAllToolBox;
  54. // 视觉工具的子Tab窗体
  55. WindowAppTreeTool* m_pVisionSubTools;
  56. // UI工具的子Tab窗体
  57. WindowAppUiTool* m_pUiSubTools;
  58. // Vision工具箱的搜索栏
  59. QLineEdit* m_pToolSearchBar;
  60. };