Can i change symbology style with a qml plugin

Sure, I’ll try to explain in more detail!

You can hide layers by marking them as private in your project settings:

They won’t be shown in QField, but plugins and expressions can still access them.

To still see them in QGIS, you have to adjust your legend filter to also show private layers

I don’t see why it wouldn’t. If you make your hidden data structure complex enough, you should be able to use it with everything you can query expressions for.

Let me break down my color example a bit more so it might be easier for you to adapt to your use case.
Let’s say we call our hidden layer could look like this:

id feature_id color_hex

Your expression for the color could then look up the color for the current feature and default to blue, while your plugin could allow you to select a color for all currently selected features and store it in the hidden layer. In theory, if you, e.g., select features 2 and 7 and set them to green using the plugin, both those features should then be green instead of blue, while all the other ones are still blue. Your hidden layer would then look something like this:

id feature_id color_hex
1 2 #008000
2 7 #008000

Since the project needs a certain structure with the hidden-layer approach, I don’t think it would be a good fit for a public app plugin anyway.

It’s a bit convoluted, but I still hope that helps! :grinning_face_with_smiling_eyes:

Edit: Data wise it should be similar to what we did with our Project Plugin for Feature Voting , that’s where I got the idea from when I read your question.