Thank you for you reply. I'll try your suggestion.
Cura plugin submit error: One of the required files could not be found. How can I know which files missed?
For future reference: you can hover over the SDK selector (that is also red) to get more details about the error message. In case of plugins, this message contains the exact file that is missing according to the package building code.
We are working on portal improvements in the future, this will include a clearer UX for error messages.
- 1
At last, I solve the build error.
These are what I do:
1.Fix the import : Remove "import Queue"
2.Fix thread model of UI: Add an annotation "@call_on_qt_thread" to the function. Maybe this method "model.setItemData" can only call from MainThead
These are what I do, but maybe not with regard to the build error:
1.Rename the package from "FlyingBearPlugin" to "FlyingBearIntegration"
2.Remove " .gitignore" from the zip file
3.Remove my custom stage, and create an "Extension" to open a new window.
Recommended Posts
nallath 1,124
I think you have one folder too much (eg the zip contains a folder FlyingBearPlugin that contains a FlyingBearPlugin). Since all of the plugins are plugins, we also recommend you to not add "plugin" to the plugin name (soo change it to FlyingBear.zip that contains a folder called FlyingBear)
You can also remove the .gitignore from the zip file.
I've also tried running your plugin, but it initially crashed on me as you're using the wrong import (eg; you use import Queue but you should use from queue import Queue). After that I'm getting other crashes if I switch to the flyingbear stage (2019-05-21 12:56:00,265 - CRITICAL - [MainThread] cura.CrashHandler.__init__ [64]: model.setItemData(model.createIndex(i,0), {1:"",0:"False"})
2019-05-21 12:56:00,265 - CRITICAL - [MainThread] cura.CrashHandler.__init__ [64]: RuntimeError: no access to protected functions or signals for objects not created from Pyth)
Apart from that, you should not be adding a separate stage for what you are trying to do. The monitor stage already handles what you want to achieve. Have a look at how the UM3 plugin or the octoprint plugin handle this.
Link to post
Share on other sites