paceholder / nodeeditor

Qt Node Editor. Dataflow programming framework
BSD 3-Clause "New" or "Revised" License
2.92k stars 795 forks source link

Plug-in functions #335

Closed zmoth closed 1 year ago

zmoth commented 1 year ago

Hello @paceholder, are you going to implement plugins in version 3? I implemented a simple dynamic link library management based on the second version. https://github.com/QianMoth/nodeeditor-p.git https://github.com/QianMoth/PluginDemo.git I wish there was a better solution, preferably one that doesn't rely on node.dll and uses only a few header files when making plug-ins.

你好,你打算在第三版本实现插件功能么?我基于第二版本实现了一个简单动态链接库的管理。 https://github.com/QianMoth/nodeeditor-p.git https://github.com/QianMoth/PluginDemo.git 我希望有更好的解决方案,最好在制作插件的时候不需要依赖node.dll,只使用少量的头文件。

isteelcx commented 1 year ago

@QianMoth 你是不是把翻译软件的中文也粘贴过来了?

paceholder commented 1 year ago

Hi @QianMoth ,

what exactly do you mean under "plugins "? What do your plugins do?

Thanks for the clarifications

zmoth commented 1 year ago

Hi @QianMoth ,

what exactly do you mean under "plugins "? What do your plugins do?

Thanks for the clarifications

ummm, My idea is that every node, or every type of node (such as Image Load Node), can be made into a plug-in (a '.dll 'file in windows). I can then use the plug-in manager to invoke the DataModelRegistry function to dynamically add or remove new nodes. This allows you to add new functionality without changing the code

zmoth commented 1 year ago

Originally I had two plugins, three nodes. When I removed one of the plug-ins called tcp and reloaded it, I was left with only one node called demo. The same goes for adding nodes

https://user-images.githubusercontent.com/55644167/204253465-49c679a2-96c0-4b56-8821-57bbd25b866a.mp4

paceholder commented 1 year ago

Thanks for the video. I think your plugin system lies beyond the scope of the current project. Node editor mainly focuses on graphics and does not imply any logic behind your node model. Your work looks like a good extension to the existing code. Can you just import node editor into your project and extend its classes? For example, you could extend the Node Data Model Registry to make it capable of loading dlls

What do you think?

zmoth commented 1 year ago

Thanks for the video. I think your plugin system lies beyond the scope of the current project. Node editor mainly focuses on graphics and does not imply any logic behind your node model. Your work looks like a good extension to the existing code. Can you just import node editor into your project and extend its classes? For example, you could extend the Node Data Model Registry to make it capable of loading dlls

What do you think?

Thank you very much for your answer! I will try to do it in the direction you said.