Bienvenue sur le forum !

Si vous souhaitez rejoindre la communauté, cliquez sur l'un de ces boutons !

Qt 5 : 5.9.1 - Qt Creator : 4.4.0 - Qt Installer : 2.0.3 - JOM : 1.1.2 - Qt Build suite : 1.7.0 - VS Qt 5 : 2.0.0

Propriété alias d'un tableau

Bonjour!

Je rencontre pas mal de difficultés sur mon premier projet QML qui est déjà bien costaud!

Mon appli possède 3 fenêtres: une interface pour l'utilisateur, et 2 écrans qui diffusent des vidéos.
J'ai opté pour 2 composants de base: un pour l'interface et l'autre qui gère l'affichage des 2 écrans.

Les vidéos diffusées sont issues d'un plugin particulier (et non documenté). En gros on lui donne en propriété des vidéos, et lui s'occupe de les synchroniser et de les retourner.
Voici l'architecture de mon composant d'affichage:

VideoManager.qml
--composantDeSynchronisation.qml
--écran1.qml
--écran2.qml

(arretez moi si je me trompe, mais je pense que c'est la bonne organisation)
L'idée maintenant, c'est que écran1 et écran2 puissent accéder aux vidéos fournies par composantDeSynchronisation. Normalement c'est le but des propriétés alias n'est-ce pas? Sauf que là, les vidéos sont stockées dans un tableau (même s'il n'y en a qu'une d'ailleurs):

LeComposantPrincipal
{
id: sync
/*configuration de(s) vidéo(s) que je vous épargne */
videoplayers: [video0]
}

LeComposantLecteur
{
id: video0
}
Et quand il n'y a pas besoin de changer de .qml pour lire la vidéo, il suffit d'ajouter

VideoOutput
{
id: lecteurVideo
source: sync.videoplayers[0]
}
et tout fonctionne.

Donc pour sortir ce VideoOutput, j'ai déclaré
property alias videoFlux: sync.videoplayers
et dans VideoManager.qml :

ComposantDeSynchronisation
{
id: compoSync
}
VideoOutput
{
source: compoSync.videoFlux[0]
}
mais j'obtiens: Unable to assign [undefined] to QObject*

J'ai essayé avec
property variant videoFlux: sync.videoplayers[0] //variant car je ne sais pas ce qu'est LeComposantLecteur
Là je n'ai plus d'erreur mais rien ne s'affiche.

Comment transférer cette propriété selon vous?

merci de m'avoir lu

Arnaud

Connectez-vous ou Inscrivez-vous pour répondre.