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

Défis Qt Discussion :

[Malikemal] Participation au défi Qt


Sujet :

Défis Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Malikemal
    Invité(e)
    Par défaut [Malikemal] Participation au défi Qt
    Bonjour à tous,

    Je participe donc à ce troisième défi Qt ! Je suis un jeune lycéen en 1E SSI, et je n'ai pas beaucoup de temps consacrer à ce projet mais j'espère que je pourrais au moins présenter le minimum. Niveau code pour le moment je suis parti sur une structure ressemblant à du MVC : je gère d'un côte les données (ou se trouve les pièces, le "calcul" des déplacements possibles, y'a t-il un échec ?...) et d'un autre côté j'ai la vu, qui se contente d'afficher "bêtement" e qui e trouve dans la classe qui représente l'échiquier. Pour celle-ci je compte utiliser un QGraphicsScene, et pour le placement des pièces je pense utiliser un QGraphicsAnchorLayout (vous avez une autre idée ?).
    Je vais je pense commencer par faire le minimum, puis si j'ai encore le temps j'ajouterai de nouvelles fonctionnalités (3D, minuteur, "feuille" de coups, ...). De plus ce n'est pas un projet que j'ai prévu d'arrêter après la fin du défi.
    Je posterai des screens, un "calendrier prévisionnel" dès que j'aurai le temps et que ce sera prêt.

    Merci et bonne chance aux participants !

    PS : Si vous avez des questions sr les échecs, vous pouvez me les poser ! J'y joue depuis que j'ai 6 ans (soit presque 10 ans !).
    Dernière modification par Malikemal ; 10/05/2012 à 16h00.

  2. #2
    Rédacteur
    Avatar de Amnell
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    1 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 840
    Par défaut
    Bonjour,

    Selon moi, La classe QGraphicsAnchorLayout peut être une solution, mais à ce que je lis, malgré le fait qu'elle donne la possibilité de lier un item au layout lui-même, elle est plutôt utilisée pour sa capacité à lier les éléments graphiques entre eux. De ce fait, j'aurais plutôt considéré la classe QGraphicsGridLayout qui semble plus adaptée à un jeu d'échecs.

    Bon courage pour le défi !
    Amnell.
    N'oubliez pas de consulter la FAQ Qt ainsi que les cours et tutoriels C++/Qt !

    Dernier article : Débuter avec les Enlightenment Foundation Libraries (EFL)
    Dernières traductions : Introduction à Qt Quick - Applications modernes avec Qt et QML
    Vous cherchez un livre sur Qt 5, Qt Quick et QML ? Créer des applications avec Qt 5 - Les essentiels

  3. #3
    Malikemal
    Invité(e)
    Par défaut
    Merci pour ta réponse.

    Je m'étais effectivement demandé si QGraphicsGridLayout n'étais pas approprié mais je me suis confronté à quelques "problèmes" (plus des questions en fait, mais je n'ai vraiment pas le temps de faire des tests ...). Nottament la superposition des layouts ou le déplacement d'une pièce. Si ça ne te gêne pas, on peut en parler par MP ?

    Merci

  4. #4
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    26 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2008
    Messages : 26 772
    Par défaut
    Citation Envoyé par Malikemal Voir le message
    Si ça ne te gêne pas, on peut en parler par MP ?
    Et pourquoi donc ? Tout le monde peut être intéressé (sans oublier les autres arguments présentés dans les règles).
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  5. #5
    Malikemal
    Invité(e)
    Par défaut
    OK je m'incline

    Bref je tiens à préciser que ce que je vais dire maintenant est purement théorique, je n'ai VRAIMENT pas l'occasion de faire des tests. Quand je peux taper du code je vais tot de suite à ce dont je suis sûr pour ne pas perdre de temps (chez moi, je peux seulement aller sur l'ordi 4h par WE grand max et rien la semaine ... Je suis au lycée en ce moment).
    Donc, déjà est-ce que le gridLayout gère la superposition des éléments ? Autrement dit est-ce que ce code fonctionnera correctement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    layout->addItem(item1, 0, 0);
    layout->addItem(item2, 0, 0);
    Est-ce que item2 sera au-dessus de item1, ou alors est-ce que item2 effacera item1 ? Je me pose la même question avec l'AnchorLayout, si deux objets se trouvent superposés, que se passera-t-il ?

    Selon la réponse à ma précédente question, je pouvais soit utiliser le même GridLayout (si la superposition ne pose pas de problèmes) ou alors créer un nouveau GridLayout. Ce dernier se trouvera donc au même emplacement que le précédent, pour que les pièces puissent se trouver sur les cases ... Est-ce possible ? (J'entends par là de superposer deux layouts)

    Enfin, pour que je puisse placer une image dans n'importe lequel des layouts, celui-ci doit dériver de QGraphicsGridLayoutItem ou QGraphicsAnchorLayoutItem. Or, j'ai besoin de placer une image. Ma queston est donc : l'héritage multiple est-il ici mal placé ? Je compte aussi ajouter quelques attributs à la représentation graphique de la pièce.

    Si vous avez besoin de compléments, n'hésitez pas

    Merci encore,

  6. #6
    Rédacteur

    Avatar de johnlamericain
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    3 742
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Royaume-Uni

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

    Informations forums :
    Inscription : Août 2004
    Messages : 3 742
    Par défaut
    Je doute que QGraphicsGridLayout te permette d'avoir plusieurs items à la même position. Ce qui me fait dire ça c'est surtout que itemAt(row, column) retourne que un élément et non une liste. J'ai cependant jamais utilisé cette classe.

    Par contre si tu fais le layout toi même (position des cases + piéces, tailles constantes évidemment), tu peux utiliser le Z-Order disponible sur un QGraphicsItem (setZValue).

    Bon courage.

  7. #7
    Malikemal
    Invité(e)
    Par défaut
    Ça nécessiterai un gros changement d'architecture de mon code, et je manque vraiment de temps ... Je ne peux coder que le WE (et là encore seulement un temps très limité), si on compte qu'en plus j'ai un mois de retard et que Qt Creator me sort des erreurs bizarres, je m'y retrouve difficilement !

    Néanmoins je m'incline devant tes arguments

  8. #8
    Malikemal
    Invité(e)
    Par défaut
    QtCreator me sort des problèmes ... bizarres. Le compilateur me dit par exemple que "vector does not a name type" alors que j'ai bien l'include Vous savez pas d'où ça peut venir ? Sachant que ça le fait pour d'autre choses (une enum aussi, et une classe) (Je n'ai pas très envie de créer un topic pour si peu ...)

    EDIT : Comme si il ne prenait pas en compte les includes ...

  9. #9
    Rédacteur
    Avatar de Amnell
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    1 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 840
    Par défaut
    Bonsoir,

    Sans plus d'informations, je dirais que cela ressemble à un problème de dépendances cycliques.

    Bonne soirée,
    Amnell.
    N'oubliez pas de consulter la FAQ Qt ainsi que les cours et tutoriels C++/Qt !

    Dernier article : Débuter avec les Enlightenment Foundation Libraries (EFL)
    Dernières traductions : Introduction à Qt Quick - Applications modernes avec Qt et QML
    Vous cherchez un livre sur Qt 5, Qt Quick et QML ? Créer des applications avec Qt 5 - Les essentiels

  10. #10
    Malikemal
    Invité(e)
    Par défaut
    Comment ça se soigne docteur ? Besoin du code ? Je pense effectivement que c'est ça.

    EDIT : Après vérification, c'est bien de là que vient le problème mais je ne peux pas faire autrement ! Ma classe Echiquier prend pour certaines méthodes des "Pieces" en paramètres et inversement pour la classe Piece ... Comment je me débrouille ?
    Dernière modification par Malikemal ; 19/05/2012 à 21h59.

  11. #11
    Rédacteur
    Avatar de Amnell
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    1 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 840
    Par défaut
    Comme ceci ?

    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
    #ifndef TRUC_H_
    # define TRUC_H_
     
    class Piece;
     
    class Equiquier
    {
    public:
        void doSomething(Piece *, int);
    };
     
    class Piece
    {
    public:
        void doSomething(Echiquier *);
    };
     
    #endif
    N'oubliez pas de consulter la FAQ Qt ainsi que les cours et tutoriels C++/Qt !

    Dernier article : Débuter avec les Enlightenment Foundation Libraries (EFL)
    Dernières traductions : Introduction à Qt Quick - Applications modernes avec Qt et QML
    Vous cherchez un livre sur Qt 5, Qt Quick et QML ? Créer des applications avec Qt 5 - Les essentiels

Discussions similaires

  1. [Ness] participation au défi Qt
    Par ness522 dans le forum Défis Qt
    Réponses: 30
    Dernier message: 16/09/2012, 22h06
  2. [RedKite] Participation au défi Qt
    Par redkite dans le forum Défis Qt
    Réponses: 3
    Dernier message: 17/07/2012, 00h24
  3. [cube45] Participation au défi Qt
    Par cube45 dans le forum Défis Qt
    Réponses: 3
    Dernier message: 27/06/2012, 21h01

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