Bootstrap Chameleon Logo

Reload Tool

每次启动时自动reload python逻辑

在开发工具的过程中,需要修改后的python逻辑能够立即生效。可以通过在界面json文件的InitCmd中,reload对应的py工具模块。使得每次打开工具的时候,自动重新加载修改后的工具逻辑。

"InitPyCmd": "import importlib, your_tools_module; importlib.reload(your_tools_module); your_tool_inst = your_tools_module.Tool(%jsonPath)"

待工具开发完成之后,再去掉对应的reload语句。

另外如果希望连界面都不重新打开就能“热加载”(hot reload)对应的逻辑,可以使用这个方法

通过按钮或者菜单重新加载Python逻辑

A GIF demonstrating the use of the context menu and quick reloading of the tool's logic and UI

如果将工具的逻辑代码与控制界面部分的代码进行拆分,可以在不关闭界面的情况下,hot reload 对应的逻辑。 此方法适合功能相对独立的方法和模块。

当然在开发的工具中,加个临时按钮,reload对应的逻辑模块也是很方便的选择:

...
{
    "SButton": {
        "Text": "Reload",
        "HAlign": "Center",
        "VAlign": "Center",
        "OnClick": "import your_utils, importlib; importlib.reload(your_utils)"
    }
},
...

对于涉及到界面逻辑部分的代码,可以通过快速更新python逻辑,在重新打开界面的时候更新逻辑