Yes, replacing QVariantList to struct most likely will speed up your app in this case. To check if an element has specific attribute, you need to extract a string from QVariantList and compare it with the search request. If there are many objects, it will take much time. If an attribute is already stored in QString, comparation will be much faster.
However, it's hard to say for certain what will be faster. Only profilter can tell you that.