12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- #pragma once
- #include "WindowAppItemIsometricLine.h"
- /// <summary>
- /// 管理UI界面中的等宽线线条的类
- /// </summary>
- class WindowAppItemIsometricLine;
- class WindowAppUiScene;
- class WindowAppIsometricLineManager
- {
- public:
- WindowAppIsometricLineManager();
- // 绑定Scene指针,用于添加等宽线
- void bindScene(WindowAppUiScene* uiScene)
- {
- this->m_pScene = uiScene;
- }
- // 根据主控件和其他控件的关系进行等宽线的判断
- void check(QWidget* srcWidget, QList<QWidget*> dstWidgets, STRETCH_DIRECTION dir);
- // 清空所有的等宽线
- void clear();
- protected:
- // 生成新的等宽线
- void newIsoLine(const UI_ISOLINE_INFO& info);
- // 比较高度
- bool checkHeight(QWidget* srcWidget, QWidget* dstWidget, STRETCH_DIRECTION dir);
- // 比较宽度
- bool checkWidth(QWidget* srcWidget, QWidget* dstWidget, STRETCH_DIRECTION dir);;
- // 检查是否需要绘制源控件的等宽线
- bool checkSourceWidget(QWidget* srcWidget, bool bSameHeight, bool bSameWidth, STRETCH_DIRECTION dir);
- protected:
- // 当前界面中的所有控件等宽线
- QVector<WindowAppItemIsometricLine*> m_IsoLines;
- // Scene的指针,用于与Scene进行交互
- WindowAppUiScene* m_pScene;
- };
|