Classificar e filtrar um modelo C ++ por meio de functores QML?

Eu tenho um polimórfico (como em papéis arbitrários)QObject modelo que é principalmente instanciado declarativamente a partir da QML,como nesta resposta, e eu gostaria de poder ter "visualizações" personalizadas de dados que classifiquem e filtrem o modelo por meio de tempo de execução arbitrário e potencialmente gerado a partir de functores JS de cadeias de código, algo como:

  DataView {
    sourceModel: model
    filter: function(o) { return o.size > 3 }
    sort: function(a, b) { return a.size > b.size }
  }

oQSortFilterProxyModel a interface não parece ser particularmente adequada para a tarefa, sendo fixada em funções estáticas e regras pré-compiladas.

Eu tentei usarQJSValue propriedades no lado C ++, mas parece que não é possível, o código C ++ simplesmente não é compilado com esse tipo de propriedade. E se eu definir o tipo de propriedade comoQVariant Recebo da QML mensagens de erro de que funções só podem ser vinculadas avar propriedades. Evidentemente,var paraQVariant a conversão não entra aqui, como ocorre nos valores de retorno.

questionAnswers(2)

yourAnswerToTheQuestion