ToolDialog.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. #pragma once
  2. #include "ui_CToolDialog.h"
  3. #include "../../Common/DllToolCommon.h"
  4. #include "../../ShowUnit/HWndUnit.h"
  5. #include <QBuffer>
  6. #include "Com.h"
  7. #include "HalconCpp.h"
  8. #include "HDevEngineCpp.h"
  9. #include ".\XML\pugixml.hpp"
  10. using namespace HDevEngineCpp;
  11. class QsciScintilla;
  12. class ToolDialogImpl : public DllToolDialog
  13. {
  14. Q_OBJECT
  15. public:
  16. ToolDialogImpl(QWidget *parent ,DllTool* pDllTool);
  17. ~ToolDialogImpl();
  18. private:
  19. Ui::CToolDialog ui;
  20. public:
  21. virtual VPEnum::RETURN_VALUE Execute();
  22. virtual void Running(bool bRun);
  23. virtual void timerEvent(QTimerEvent* event);
  24. virtual bool Serialized(QDataStream& ar, bool bIsOut);
  25. bool bindValuePtrByName(const QString strName, const int nIndex);
  26. signals:
  27. void sigUpdateUI();
  28. private slots:
  29. void on_UpdateUI();
  30. void on_btnOK_clicked();
  31. void on_btnCancel_clicked();
  32. void on_btnExecute_clicked();
  33. void documentWasModified();
  34. void on_btnLoad_clicked();
  35. void on_btnExport_clicked();
  36. void on_btnCompile_clicked();
  37. void on_checkBoxEnableDebug_stateChanged(int arg1);
  38. private:
  39. // 窗口管理变量
  40. HWndUnit* hwndUnit;
  41. // 在此处添加需要导出的变量
  42. public:
  43. HImage m_Image;
  44. // 在此处添加内部需要使用的变量
  45. private:
  46. bool ParseToolXML(QString strPath);
  47. bool SaveXML(QString strPath);
  48. void UpdateScriptByEdit(QString FunctionName, bool isLoad);
  49. bool Compile(QString strPath);
  50. bool addNewValueToInf();
  51. bool resetValueToInf();
  52. // 2022-3-8 向exe中的同步最新的接口变动(一个或多个)
  53. void syncInterfacesToPou(QList<DLL_INF> pInfs, bool bAdd = true);
  54. QString m_strFunctionName;
  55. // 函数名称
  56. QString m_strProcName;
  57. // 加载的脚本名称,工具会根据该名称,生产本地临时脚本
  58. QString m_strScriptBaseName;
  59. H_SCRIPT m_HalconScript;
  60. HDevProgram my_program;
  61. HDevProcedure proc_fib;
  62. QsciScintilla* scriptEdit;
  63. DllTool* m_pDllTool; // 指向DllTool的指针,用于调用其中函数
  64. //////////////////////////////////////////////////////////////////////////
  65. };