WindowRuntimeView.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #pragma once
  2. #include "Common.h"
  3. class WindowAppUiView;
  4. class SelectWidget;
  5. class VButton;
  6. class VLabel;
  7. class VLineEdit;
  8. class WindowRuntimeView : public QWidget
  9. {
  10. Q_OBJECT
  11. public:
  12. WindowRuntimeView(QWidget *parent);
  13. ~WindowRuntimeView();
  14. // 从设计页面中拷贝
  15. bool copyFrom(WindowAppUiView* pDesignView);
  16. protected:
  17. // 初始化Logo贴图
  18. void initLogoImage();
  19. // VButton的点击处理
  20. void onButtonClicked(VButton* pClickButton);
  21. // 绘制界面背景
  22. void paintEvent(QPaintEvent*) override;
  23. //========================================================
  24. // 复杂控件同步相关函数
  25. // 解析复杂控件传入的扩展属性(用于执行扩展属性中的数值链接同步)
  26. bool parseComplexPropertyEx(QWidget* pWidget, CONTROL_PROPERTY_EX* propertyEx);
  27. // 解析Datalink信息
  28. bool parseDatalink(DataLink& dataLink, VARIABLE*& pVar);
  29. // 自定义控件的槽函数
  30. protected slots:
  31. // 控件点击事件的总体调度
  32. void slotControlClickedDispatcher();
  33. //==========================================================
  34. // 用于控件同步的消息
  35. // 当Edit控件内容变更时
  36. void onVEditChanged(const QString& strText);
  37. // 当Value控件内容变更时
  38. void onValueControlChanged(const QString& strText);
  39. // ComboBox变更消息
  40. void onVComboChanged(const int nIndex);
  41. // ListBox变更消息
  42. void onVListChanged(const int nRow);
  43. // RadioBox变更消息
  44. void onVRadioChanged(bool checked);
  45. // CheckBox变更消息
  46. void onVCheckChanged(int state);
  47. // 执行控件的首次同步
  48. void doFirstSync(QWidget* pUiControl, VALUE_TYPE controlType, const VARIABLE* pVariable = nullptr);
  49. protected:
  50. // Logo 贴图
  51. QPixmap* m_pLogoImage;
  52. QList<SelectWidget*> m_pControls;
  53. };