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 :

Problème création d'un echiquier


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Février 2007
    Messages : 108
    Par défaut Problème création d'un echiquier
    Bonjour,
    j'ai un problème avec mon programme. C'est un programme d'echec codé en c++ et je suis en train de réaliser l'interface graphique avec la bibliothèque Qt. Pour créer le damier, j'ai crée un objet de type QTabWidget

    1er question : trouvez vous ce choix pertinent? avez-vous une méthode plus adaptée??

    j'arrive a dimensionner le tableau de facon a ce que la taille des cases soient carrées (avec un for de 0 à 9 et les methodes setHeigth() et setWidth() [une methode doit etre plus adaptée non?])

    Cependant l'utilisateur a toujours la possibilité de redimensionner le tableau. Connaissez-vous la méthode qui permettrait de fixer une taille fixe aux cellules?

    j'ai encore un peu de mal avec la doc, je suis débutant =)

    merci d'avance pour vos réponses !!

    Slici

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Salut et bienvenu sur le forum.
    Citation Envoyé par Slici Voir le message
    1er question : trouvez vous ce choix pertinent? avez-vous une méthode plus adaptée??
    Pour moi, les QGraphicView sont plus adapté.


    Cependant l'utilisateur a toujours la possibilité de redimensionner le tableau. Connaissez-vous la méthode qui permettrait de fixer une taille fixe aux cellules?
    comment initialise tu QTableWidget?

  3. #3
    Membre très actif
    Avatar de FloMo
    Homme Profil pro
    Freelance iOS
    Inscrit en
    Juillet 2004
    Messages
    726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Freelance iOS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 726
    Par défaut
    Citation Envoyé par Mongaulois Voir le message
    Salut et bienvenu sur le forum.

    Pour moi, les QGraphicView sont plus adapté.
    Je suis du même avis : QGraphicsView peut sembler obscur au premier abord, mais c'est beaucoup plus adapté pour ce genre de travail.

    Tu auras plus de souplesse aussi en terme de gestion des pions (QGraphicsItem) que d'animation des déplacements (QGraphicsItemAnimation). Le redimensionnement sera géré naturellement et les performances excellentes.

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Février 2007
    Messages : 108
    Par défaut
    Merci de vos conseils, je vais me pencher sur QGraphicsView avec joie

    pour mon QTableWidget, il était initialisé en taille fixe mais les bords n'arrivaient pas à la limite des cases c'etait pas très élégant...

  5. #5
    Membre très actif
    Avatar de FloMo
    Homme Profil pro
    Freelance iOS
    Inscrit en
    Juillet 2004
    Messages
    726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Freelance iOS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 726
    Par défaut
    Un exemple d'échiquier dont le code n'est pas très clean mais donne une idée de l'efficacité de l'outil.

    main.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #include <QtGui>
    #include "plateau.h"
     
    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
        Plateau p;
     
        p.show();
     
        return app.exec();
    }
    plateau.h
    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
     
    #include <QtGui>
     
    class PlateauScene
        : public QGraphicsScene
    {
        Q_OBJECT
     
        public:
            PlateauScene(QObject *parent = 0);
            void drawBackground ( QPainter * painter, const QRectF & rect );
    };
     
    class Plateau
        : public QGraphicsView
    {
        Q_OBJECT
     
        public:
            Plateau(QWidget *parent = 0);
     
        private:
            PlateauScene *scene;
    };
    plateau.cpp
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    #include "plateau.h"
     
    PlateauScene::PlateauScene(QObject *parent)
        :QGraphicsScene(parent)
    {
    }
     
    void PlateauScene::drawBackground ( QPainter * painter, const QRectF & rect )
    {
        int x = 0;
        int y = 0;
        int max = 0;
     
        int s = 0;
     
        int i, j;
     
        bool b = true;
     
        if (views()[0]->width() > views()[0]->height())
            max = views()[0]->height() - 5;
        else
            max = views()[0]->width() - 5;
     
        while (max >= 8) {
            s++;
            max -=8;
        }
     
        setSceneRect(0, 0, views()[0]->width() - 5, views()[0]->height() - 5);
     
        for (i = 0 ; i < 8 ; i++) {
            for (j = 0; j < 8;j++) {
                if (b)
                    painter->fillRect(x, y, s, s, QBrush(Qt::black));
                else
                    painter->fillRect(x, y, s, s, QBrush(Qt::white));
                x += s;
                b = !b;
            }
            y +=s;
            x = 0;
            b = !b;
        }
    }
     
    Plateau::Plateau(QWidget *parent)
        :QGraphicsView(parent)
    {
        scene = new PlateauScene(this);
        setScene(scene);
     
        setWindowTitle(tr("Plateau"));
        setMinimumSize(600, 600);
    }

Discussions similaires

  1. problème création de process
    Par skaii dans le forum MFC
    Réponses: 6
    Dernier message: 01/06/2005, 17h24
  2. .htaccess problème création sous windows
    Par Leviathan_72 dans le forum Apache
    Réponses: 2
    Dernier message: 18/05/2005, 20h29
  3. Problème création et destruction de processus.
    Par loupdeau dans le forum MFC
    Réponses: 5
    Dernier message: 08/04/2005, 13h33
  4. Problèmes création de procédures et de triggers
    Par missllyss dans le forum SQL
    Réponses: 2
    Dernier message: 06/11/2003, 10h42
  5. Problème création de DLL
    Par monsieur.voie.lactee dans le forum C++Builder
    Réponses: 4
    Dernier message: 12/08/2003, 16h56

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