OriginalWnd.h 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. #pragma once
  2. #ifndef ORIGINALWND_H
  3. #define ORIGINALWND_H
  4. #include <QMainWindow>
  5. #include "DbTreeViewManager.h"
  6. #include <QVBoxLayout>
  7. #include <QJsonObject>
  8. #include <QDialog>
  9. #include <QRadioButton>
  10. #include <QButtonGroup>
  11. #include <QLabel>
  12. #include "Src/Sql/GetUiConfigFormDB.h"
  13. #include "Src/CameraBind.h"
  14. #include "JOriginalMainWnd.h"
  15. #include "CameraDistribute.h"
  16. #include "Src/RewriteControl/Sidebar/LogStatePage.h"
  17. #include <QTranslator>
  18. //#include "CViewInterface.h"
  19. QT_BEGIN_NAMESPACE
  20. namespace Ui {
  21. class OriginalWnd;
  22. }
  23. QT_END_NAMESPACE
  24. // 3个切换窗口
  25. enum EN_WND_SWITCH
  26. {
  27. ChartsAnd = 1,
  28. MainAndSecondary,
  29. SingleCameraOperation
  30. };
  31. class OriginalWnd : public QMainWindow
  32. {
  33. Q_OBJECT
  34. public:
  35. explicit OriginalWnd(QWidget* parent = nullptr, CameraBind* pCameraBind = nullptr);
  36. ~OriginalWnd();
  37. /**相机初始化
  38. */
  39. void CameraBindInit(CameraBind* pCameraBind);
  40. /**所有接口初始化
  41. */
  42. void RegFun();
  43. QWidget* getWidgetLeft() const; // 访问 widget 的接口
  44. /**切换配置
  45. *
  46. */
  47. void SwitchToConfig(const QString& name, int configId, int menuArrayIndex, bool isMenuArray = true);
  48. // 切换不同配置
  49. void switchMsgConfig();
  50. void switchToHomeConfig();
  51. void switchToProductionConfig();
  52. void switchToDiagnosisConfig();
  53. void switchToDispositionConfig();
  54. void switchToModuleConfig();
  55. void switchToProgramConfig();
  56. void switchToSystemConfig();
  57. /**禁用控件
  58. */
  59. void DisableControls(bool isDisable);
  60. enum DEVICE_STATUS
  61. {
  62. IDLE,//停机待机
  63. RUNING,//生产
  64. CALIB,//校准
  65. WARN,//报警
  66. FAULT, //故障
  67. DIAGNOSE//诊断
  68. };
  69. enum CONNECT_STATUS
  70. {
  71. NO_CONNECT,//未连接 灰色
  72. CONNECT_ING,//连接中 黄色
  73. MACHINE_TIMEOUT,//机台超时 橙色
  74. HOST_TIMEOUT,//主机超时 蓝色
  75. CONNECT_OK,//连接成功 绿色
  76. };
  77. enum HOST_STATUS
  78. {
  79. HOST_OUT,//主机离线 黄色
  80. DEVICE_OUT,//设备离线 橙色
  81. DEVICE_ING,//设备试图连线 紫红色
  82. DEVICE_OK,//设备在线 蓝色
  83. HOST_CON_DEVICE,//主机控制设备 绿色
  84. };
  85. // 顶部状态栏
  86. void updateCalibrationButtonColor(enum DEVICE_STATUS status);
  87. void updateMachineLinkColor(enum CONNECT_STATUS status);
  88. void updateHostStatusColor(enum HOST_STATUS status);
  89. void StatusBar();
  90. void retranslateUi();
  91. protected:
  92. bool eventFilter(QObject* obj, QEvent* event) override;
  93. void timerEvent(QTimerEvent* event) override;
  94. void resizeEvent(QResizeEvent* event) override;
  95. void InitForm(); // 初始化表单控件
  96. void InitTreeViewManager();
  97. /**更新当前时间
  98. */
  99. void UpdateTime();
  100. /**释放收尾
  101. */
  102. void Del();
  103. /**切换快捷侧边按钮
  104. */
  105. void RunOrStopSwitch(bool isStart = false);
  106. void changeEvent(QEvent* event);
  107. private slots:
  108. void on_ChartButton_clicked();
  109. void on_DoubleImageButton_clicked();
  110. void on_SingleImageButton_clicked();
  111. void on_LogStatBut_clicked();
  112. void on_startButton_clicked();
  113. void on_stopButton_clicked();
  114. void on_saveBut_clicked();
  115. public slots:
  116. void onHandleLanguageSlots(const int& data);
  117. void JRunFunSlots(ns_module::ST_BUTTON_FUN pra);
  118. /**控制是否打开按钮
  119. */
  120. void IsOpenToolsWidgetSlots(bool isOpen);
  121. signals:
  122. void sendDisableFeaturesSig(bool isDisable);
  123. private:
  124. // 隐藏布局中的所有控件
  125. void hideLayout(QLayout* layout) {
  126. for (int i = 0; i < layout->count(); ++i) {
  127. QWidget* widget = layout->itemAt(i)->widget();
  128. if (widget) {
  129. widget->hide();
  130. }
  131. }
  132. }
  133. // 显示布局中的所有控件
  134. void showLayout(QLayout* layout) {
  135. for (int i = 0; i < layout->count(); ++i) {
  136. QWidget* widget = layout->itemAt(i)->widget();
  137. if (widget) {
  138. widget->show();
  139. }
  140. }
  141. }
  142. /**禁用所有窗口
  143. */
  144. void DisableAllFeatures(bool isDisable);
  145. /**设置当前选中窗口
  146. */
  147. void SwitchMainPage(JOriginalMainWnd* pWnd, QToolButton* tooBut);
  148. /**创建选中窗口
  149. */
  150. void CreateSwitchMainPage(int nlastIndex = -1);
  151. private:
  152. Ui::OriginalWnd* ui;
  153. /**相机绑定接口
  154. */
  155. QPointer<CameraBind> m_pCameraBind;
  156. /**保存当前切换窗口
  157. */
  158. QPointer<JOriginalMainWnd> m_pJOriginalMainWnd;
  159. /**树视图管理
  160. */
  161. std::unique_ptr<DbTreeViewManager> m_pdbTreeViewManager;
  162. /**数据库
  163. */
  164. GetMainUiConfigFormDB gen_if;
  165. /**相机分配,观察页面以及相机变化
  166. */
  167. CameraDistribute* m_pCameraDistribute = nullptr;
  168. /**Loop 时间
  169. */
  170. int m_nTimerID = -1;
  171. /**快捷按钮切换用
  172. */
  173. bool m_isDisabled = true;
  174. QPointer<LogStateSidebar> m_pLogStateSidebar;
  175. };
  176. #endif // ORIGINALWND_H