2 votes

Impossible d'utiliser le type importé comme type de propriété dans QML lorsqu'il est importé avec un qualificatif.

Pour éviter, par exemple, les conflits d'espace de noms, je veux importer un module en QML en utilisant un qualificateur :

import <ModuleIdentifier> <Version.Number> [as <Qualifier>]

donc dans mon cas j'utilise :

import com.myorg.models 1.0 as Model

Dans cette importation, j'ai un type nommé "User". Je veux ensuite l'utiliser comme une propriété de type "User" dans un fichier QML.

//User.qml
import QtQuick 2.8
import com.myorg.model 1.0 as Model

Item {
    property Model.User user         //This does not work
    property var user: Model.User {} //This does work, but if possible I want to avoid 'var'.
    property User user               //This works, if I remove the qualified name in the import statement.
}

Ainsi, sans le qualificatif 'Model' dans la déclaration d'importation, je peux utiliser 'User' comme type dans la propriété, mais dès que vous utilisez un qualificatif, vous ne pouvez pas. Cela me semble étrange. Y a-t-il une bonne raison à cela ou est-ce simplement non pris en charge ?

Personnellement, j'aimerais pouvoir le faire :

property Model.User user

tout comme je peux le faire en n'utilisant aucun qualificatif :

property User user

1voto

agateau Points 898

C'était un bogue dans Qt. Il a été corrigé dans Qt 5.8.0 : https://bugreports.qt.io/browse/QTBUG-10822 .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X