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 Discussion :

Conseil pour créer une timeline


Sujet :

Qt

  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2010
    Messages : 517
    Points : 718
    Points
    718
    Par défaut Conseil pour créer une timeline
    Bonjour tout le monde,

    Pour une application d'animation 3D, je souhaiterais créer une timeline permettant d'afficher différentes étapes de mon animation (les différentes transformations, les pauses etc).
    Je pars d'une application déjà existante codée avec Qt et utilisant les Widgets.
    Je vois globalement les différentes tâches à accomplir:
    • Créer des boites pouvant se déplacer horizontalement et verticalement ainsi que la possibilité de s'agrandir pour représenter le temps
    • Créer un conteneur permettant d'ajouter, de supprimer et d'afficher les boites sous forme de tableau.


    N'ayant fait que du Qt "classique", je n'ai jamais appris à utiliser Qt Quick. Donc pour mes boites, j'avais simplement pensé à une surcharge d'un simple widget avec des restrictions sur la taille.
    Pour le conteneur, je pensais à une utilisation d'un QTableWidget.

    Première question: Est-ce mes premières impressions semblent correctes?
    Seconde question: Est-ce qu'il serait intéressant d'utiliser Qt Quick ici?
    Troisième question: Est-ce qu'il y a un projet en licence libre non contaminant (pas GPL) qui existe? (J'ai cherché mais rien trouvé jusqu'à présent)

    Merci pour tout!

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2010
    Messages : 517
    Points : 718
    Points
    718
    Par défaut
    Je suis parti sur des QWidget classiques. J'ai enlevé la bordure (un peu comme une QFrame). J'ai cependant un problème particulièrement énervant: quand je fixe la hauteur de ma widget, je peux quand même la redimensionner verticalement...
    Je dois m'y prendre mal mais je ne vois pas ce qu'il y a de faux dans le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    MyWidget::MyWidget(QWidget * parent): QWidget(parent)
    {
      setMinimumSize(200, 40);
      setMaximumSize(500, 40);
     
      resize(200, 40);
    }

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2010
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2010
    Messages : 248
    Points : 421
    Points
    421
    Par défaut
    Citation Envoyé par darkman19320 Voir le message
    Je suis parti sur des QWidget classiques. J'ai enlevé la bordure (un peu comme une QFrame). J'ai cependant un problème particulièrement énervant: quand je fixe la hauteur de ma widget, je peux quand même la redimensionner verticalement...
    Je dois m'y prendre mal mais je ne vois pas ce qu'il y a de faux dans le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    MyWidget::MyWidget(QWidget * parent): QWidget(parent)
    {
      setMinimumSize(200, 40);
      setMaximumSize(500, 40);
     
      resize(200, 40);
    }
    Bonjour,

    Peut être avec setFixedHeight :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    setMinimumWidth(200);
    setMaximumWidth(500);
    setFixedHeight(40);

  4. #4
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 222
    Points : 766
    Points
    766
    Par défaut
    Bonjour,

    Je ne sais pas si ça peut t'aider mais tu peux aller voir dans le code de kdenlive pour piocher des idées, basé sur KDE donc j'imagine que ça reste proche de Qt.

  5. #5
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2010
    Messages : 517
    Points : 718
    Points
    718
    Par défaut
    @Gojir4:
    Merci pour le conseil mais je viens de trouver le problème... les objets de mon widget sont plus grand que la taille minimale que j'avais fixé... Donc ça me faisait n'importe quoi.

    @olreak:
    Merci pour le lien! Je vais regarder de ce pas!

  6. #6
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2010
    Messages : 517
    Points : 718
    Points
    718
    Par défaut
    Bonjour tout le monde,
    Je reviens vers vous pour vous faire part de mes avancées. J'ai donc troqué les QWidgets par des QGraphicsItem (pour le moment des carrés). J'ai a peu près réussi à permettre le redimensionnement de ceux-ci.
    Je suis entrain de voir comment faire un drag-&-drop mais j'éprouve quelques difficultés pour placer mon item dans une autre vue à la position du curseur de la souris.
    Voici comment j'ai implémenté le "drag":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    void Item::mousePressEvent(QGraphicsSceneMouseEvent *event)
    {
        QMimeData * mimeData = new QMimeData;
        Item * item = this;
        QByteArray byteArray(reinterpret_cast<char*>(&item),sizeof(Item*));
        mimeData->setData("Item",byteArray);
     
        // start the event
        QDrag * drag = new QDrag(event->widget());
        drag->setMimeData(mimeData);
        drag->exec(Qt::MoveAction);
    }
    et voici le drop:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    void Scene::dropEvent ( QGraphicsSceneDragDropEvent * event )
    {
        QByteArray byteArray = event->mimeData()->data("Item");
        Item * item = *reinterpret_cast<Item**>(byteArray.data());
     
        //Add the item only if the scene is different
        if (item->scene() != this)
        {
          addItem(item);
        }
     
        item->setPos(event->scenePos());
        update();
    }
    Au niveau du dropEvent, j'ai essayé de modifier la position avec les différentes "map" (mapTo*) mais malheureusement rien n'y fait. Je suis un peu à cours d'idées.

    Qu'est-ce que je fait de mal?

    Merci

Discussions similaires

  1. Conseils pour créer une application
    Par rolandg dans le forum Android
    Réponses: 2
    Dernier message: 30/10/2010, 12h52
  2. Réponses: 22
    Dernier message: 31/05/2010, 12h08
  3. Conseil pour créer une interface
    Par osact dans le forum Oracle
    Réponses: 5
    Dernier message: 18/06/2009, 12h27
  4. Besoin de conseils pour créer une page avec un avatar
    Par cedric/copy dans le forum ASP
    Réponses: 5
    Dernier message: 02/04/2009, 13h46
  5. Quelques conseils pour créer une application 3D
    Par mister3957 dans le forum Développement 2D, 3D et Jeux
    Réponses: 8
    Dernier message: 13/03/2006, 22h45

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