123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- #pragma once
- #include <QWidget>
- #include "ui_WindowAppPouFrame.h"
- #include "Common.h"
- #include "CommonDraw.h"
- #include "WindowAppPouNavView.h"
- /// <summary>
- /// Pou的界面容器
- /// </summary>
- class WindowAppPouFrame : public QWidget
- {
- Q_OBJECT
- public:
- WindowAppPouFrame(const QString& strTitle, QWidget *parent = Q_NULLPTR);
- ~WindowAppPouFrame();
- //// 清理窗口的数据
- //void reset();
- // 在界面中添加新的变量(from序列化文件)
- void addNewVariable(VARIABLE* pNewVariable);
- //// 在界面和数据结构中添加新的TOOL(from序列化文件)
- //void addNewTool(TOOL* pNewTool, QPointF pos);
- //// 在界面中添加新的Link(from序列化文件)
- //void addNewLink(const QString& strStartInf, const QString& strEndInf, LINK_MODE linkMode);
- void UpdataDebugData(DebugData);
- // 序列化
- friend QDataStream& operator<<(QDataStream& out, const WindowAppPouFrame* pFrame);
- // 反序列化
- friend QDataStream& operator>>(QDataStream& in, WindowAppPouFrame* pFrame);
- // 本Pou分组的名称
- QString m_strTitle;
- private:
- Ui::WindowAppPouFrame ui;
- private slots:
- // events
- void resizeEvent(QResizeEvent* event) override;
- void enterEvent(QEvent* event) override;
- void leaveEvent(QEvent* event) override;
- void slotSplitterMoved(int pos, int index);
- // 响应Paint事件为了刷新Undo菜单启用禁用(TODO:暂时没有找到更好的位置)
- void paintEvent(QPaintEvent* event) override;
- private slots:
- // Toolbar响应函数
- // Toolbar - Gvl New
- void onToolGvlNew();
- // Toolbar - Gvl MoveUp
- void onToolGvlMoveUp();
- // Toolbar - Gvl MoveDown
- void onToolGvlMoveDown();
- // Toolbar - Gvl Delete
- void onToolGvlDelete();
- // 功能块序号 减 1
- void onToolMoveUp();
- // 功能块序号 加 1
- void onToolMoveDown();
- // 功能块序号 置1
- void onToolMoveFirst();
- // 功能块序号 置底
- void onToolMoveLast();
- // 功能块左对齐
- void onToolAlignLeft();
- // 功能块顶对齐
- void onToolAlignTop();
- // 功能块右对齐
- void onToolAlignRight();
- // 功能块底对齐
- void onToolAlignBottom();
- // Undo
- void onToolUndo();
- // Redo
- void onToolRedo();
- // Option
- void onToolOption();
- // 执行一轮
- void onToolRunOnce();
- // 单步执行
- void onToolSingleStep();
- // 接收键盘消息
- void keyPressEvent(QKeyEvent* event)override;
- private:
- // 初始化Pou子界面工具栏
- void initPouToolbar();
- // 初始化局部变量子界面工具栏
- void initGvlToolbar();
- //// 初始化变量表格
- //void initTable();
- // UI元素初始化
- void initUI();
- void ToolRunOnce();
- void ToolSingleStep();
- // 刷新Undo/Redo按钮
- void refreshUndoMenu();
- private:
- // 菜单的Action
- QAction* actionMoveUp;
- QAction* actionMoveDown;
- QAction* actionMoveFirst;
- QAction* actionMoveLast;
- QAction* actionAlignLeft;
- QAction* actionAlignTop;
- QAction* actionAlignRight;
- QAction* actionAlignBottom;
- // 2022-9-29,增加了Undo和Redo按钮
- QAction* actionUndo;
- QAction* actionRedo;
- QAction* actionOption;
- QAction* actionRunOnce;
- QAction* actionSingleStep;
- private:
- // 局部变量子界面工具栏
- QToolBar* m_GvlToolbar;
- // Pou子界面工具栏
- QToolBar* m_PouToolbar;
- // 鸟瞰图
- WindowAppPouNavView* m_pNavView;
- };
|