-
1 pièce(s) jointe(s)
Création de tableaux
Bonjour à tous,
Je suis actuellement sur un projet : coder BloodBowl en 2D. C'est un mix entre un jeu de rôle et un jeu de football américain. Pour l'instant l'explication des règles n'est pas très importante, ma question porte surtout sur les types d'objets que je pourrais utiliser dans les librairies Qt. Vous allez me dire pourquoi Qt ? Car nous avons décidé avec les membres du projet d'utiliser ce framework, bref, passons.
Je dois donc créer en quelque sorte le plateau de jeu (y'a une image en pièce jointe) composée de deux tableaux.
J'ai essayé déjà quelques outils : QTableWidget, seulement j'ai l'impression que c'est un peu trop gros pour ce dont j'ai besoin. Je n'ai pas besoin qu'on puisse saisir qqch dans les cases, c'est juste un affichage.
J'ai aussi essayé de faire ça avec des QLabel, là par contre ça devient vite un calvaire : chaque petite case est facile à faire mais QLabel me semble pas adapté pour les barres séparatrices entre les cases (plus ou moins épaisses selon les zones).
J'ai aussi regardé un peu QGraphicsScene&View, je vois pas encore trop la différence entre ça et un layout classique, à part peut-être que ce soit fait pr le MVC (si j'ai bien compris).
Bref, ce que je recherche, c'est un outil qui soit le plus simple possible, et qui me permette de faire tes tableaux tous simples dans une fenetre, sachant que la seule contrainte que j'ai c'est d'avoir une notion de "case", qu'on puisse changer la couleur de fond de ces même cases, et l'épaisseur des traits entre chaque case.
Si cet outil peut faire la différence entre le core et l'affichage (pour le MVC), ce serait parfait.
J'imagine que quelqu'un va me dire "utilise le designer de Qt", je préfère ne pas l'utiliser pour l'instant, pour bien comprendre ce que je fais et quels outils j'utilise.
Merci à vous pour avoir lu mon roman.
Horn33t
-
Bonjour,
Tout d'abord sachez que le forum à une sous section dédié à Qt.
Après, il faut savoir ce que vous voulez vraiment faire avec votre tableau.
Certes cela ressemble à un tableau, mais avez vous besoin de mettre des données dedans, ou encore, faire du drag & drop ( glisser & déposer ) ou autre.
C'est en partant des besoins que nous savons quelle est la meilleur solution.
J'ai l'impression, qu'il va falloir faire avec un QGraphicView ... sauf que perso j'y ai jamais trop touché ... :aie:
-
Bonjour, et merci pour la réponse :)
Désolé, j'ai pas assez parcouru le forum pour le placer dans la section appropriée, je le saurai à l'avenir.
A priori, je n'aurai pas besoin de faire de drag&drop sur le tableau, c'est juste une vue.
J'ai regardé QGraphicsView, et j'ai pas trop compris la différence entre ça et un layout classique, je vois pas en quoi ça pourrait m'aider pour les tableaux.
Peut etre une combinaison d'un QGraphics View et d'un outil pour faire des tableaux, plus simple que QTable qui crée des tableaux éditables ?
-
Vous avez besoin d'éditer vos cases, pour quoi faire ? ( mettre du texte dedans ? )
-
non pas du tout, c'est la vue d'un plateau de jeu, la seule chose que j'ai besoin de faire c'est de changer la couleur de fond des cases et d'épaisser les traits de séparation...
-
Alors c'est bien le QGraphicView qu'il vous faut. Vous n'avez pas du tout besoin de QTableWidget ou autre truc qui gère en détail les tables et surtout leurs contenus.
Le QGraphicView permettra de faire les rectangles, avec juste une boucle for (ou deux). Après vous pouvez mettre la couleur que vous voulez.
Pour les lignes, cela va se jouer, soit sur la grosseur des lignes en superposition aux cases, soit en décalant dans la boucle for.
Essayez sans les lignes dans un premier temps ;)
-
Merci beaucoup pour ces réponses, elles m'aident vraiment.
Cependant, j'ai encore une petite question : je souhaite séparer la vue des données ( modèle MVC ), je souhaite donc créer d'un côté une classe table contenant des cases (j'implémente aussi les cases moi même), et d'un autre côté une vue.
Pensez vous que QGraphicsScene est dans cette optique ? de ce que j'ai compris elle mélange les deux...