IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Quick Discussion :

Aucune animation sur mon SplashScreen


Sujet :

Qt Quick

  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2016
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2016
    Messages : 48
    Par défaut Aucune animation sur mon SplashScreen
    Bonjour !

    J'ai fait un petit splashscreen qui fonctionne très bien avec des "SequentialAnimation" et je souhaite maintenant l'intégrer à mes softs.

    Pour ça, j'ai suivi le site http://falsinsoft.blogspot.fr/2017/0...screen-at.html.

    Je charge donc mon splashscreen mais l'animation dure entre une demi et une seconde après elle ne bouge plus. Et ensuite, après mon petit "chrono" de 5 secondes, la page principale charge.

    Je ne sais pas pourquoi mon animation se fige. J'ai essayé de mettre un petit "BusyIndicator" à côté et il fonctionne correctement.

    Mon main.qml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Item {
     
        Loader {
            id: mainWindowLoader
            active: false
            source: "qrc:/mainWindow.qml"
            asynchronous: true
            onLoaded{
                item.visible = true;
                splashScreenLoader.item.visible = false;
                splashScreenLoader.source = "";
            }
        }
     
        Loader {
            id: splashScreenLoader
            source: "qrc:/Splash.qml"
            onLoaded{
                mainWindowLoader.active = true;
            }
        }
     
    }

    Dans mon mainWindow.qml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ApplicationWindow  {
        id: applicationWindow
        visible: true
        width: 1280
        height: 720
        title: qsTr("Programme QML")
        Component.onCompleted{
            var timeout = new Date().valueOf() + 3000;
            while(timeout > new Date().valueOf()) {}
        }
       ...
    }

    une partie de mon Splash.qml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    ApplicationWindow  {
        id: applicationWindow
        visible: true
        width: 500
        height: 320
        title: qsTr("Hello World")
        color: "transparent"
        modality: Qt.ApplicationModal
        flags: Qt.SplashScreen
     
     
        Item {
            id: splash
            ...
            // mes SequentialAnimation et autres...
        }
     
        Component.onCompleted{
            anim.running  = true
            anim2.running = true
            anim3.running = true
            anim4.running = true
     
            visible = true
        }
    Avez-vous une idée ? Merci pour votre aide !

  2. #2
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2016
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2016
    Messages : 48
    Par défaut
    Désolé d'avoir posté trop vite. Finalement je viens de voir que l'on peut utiliser des Timers en QML et du coup j'en ai mis un avant de commencé à charger ma page principale.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    import QtQuick 2.7
     
    Item {
     
        Loader {
            id: splashScreenLoader
            source: "qrc:/Splash.qml"
        }
     
        Loader {
            id: mainWindowLoader
            active: false
            source: "qrc:/mainWindow.qml"
            asynchronous: true
            onLoaded{
                item.visible = true;
                splashScreenLoader.item.visible = false;
                splashScreenLoader.source = "";
            }
        }
     
        Timer {
            interval: 3000; running: true; repeat: false
            onTriggered{
                mainWindowLoader.active = true;
            }
        }
    }
    Comme ça on voit mon petit SplashScreen !

    Merci quand même !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.0] Aucun echo sur mon formulaire sous IE
    Par BRUNO71 dans le forum Langage
    Réponses: 2
    Dernier message: 18/05/2013, 22h45
  2. Réponses: 2
    Dernier message: 10/01/2013, 22h03
  3. Aucune reaction sur mon pc!
    Par solaar dans le forum Composants
    Réponses: 16
    Dernier message: 04/08/2009, 13h46
  4. animation sur mon site
    Par emie_001 dans le forum Imagerie
    Réponses: 3
    Dernier message: 02/07/2008, 10h40
  5. [Flash] Préloader une animation sur mon site?
    Par nicotine dans le forum Flash
    Réponses: 2
    Dernier message: 22/05/2006, 12h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo