projet Fichiers structurés
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
-29%
Le deal à ne pas rater :
PC portable – MEDION 15,6″ FHD Intel i7 – 16 Go / 512Go (CDAV : ...
499.99 € 699.99 €
Voir le deal

avancement de l'interface qt

5 participants

Page 1 sur 2 1, 2  Suivant

Aller en bas

avancement de l'interface qt Empty avancement de l'interface qt

Message  nico Dim 6 Avr - 19:20

OH HAÏ

ça commence à prendre forme tout ça, voilà quelques screens.


on commence par créer une table :

avancement de l'interface qt 1


après ça demande un nom (etudiants dans ce cas), un nombre de champs (4) , puis ça affiche cette fenêtre (que j'ai déjà remplie) :

avancement de l'interface qt 2


on valide, ça crée le fichier etudiants.struct, en utilisant le Ctable.cpp de davy.
ensuite je remplis la table avec le base.cpp by amine, en ligne de commande pour l'instant :

avancement de l'interface qt 3


on choisit la table à ouvrir depuis l'interface :

avancement de l'interface qt 4


on créée ce qu'on appelle un "QtAbstractItemModel", et on on utilise la fonction affiche() du base.cpp pour tout importer :

avancement de l'interface qt 5



la prochaine étape, c'est l'exportation des données (depuis l'interface, vers un fichier .db), en gros pouvoir manipuler les données d'une table (pas la structure) direct depuis l'interface.
et tout ça se fait évidemment en utilisant les fonctions du base.cpp de amine.
je vais mettre les fichiers sur le svn.

cya
nico
nico

Messages : 52
Date d'inscription : 30/01/2008
Age : 36
Localisation : Montpellier

Revenir en haut Aller en bas

avancement de l'interface qt Empty Re: avancement de l'interface qt

Message  amine Dim 6 Avr - 19:35

ah ouai ça a bien avancé dis donc Very Happy
donc c'est parfait. juste un petit detaille a regler niveau parametres dans la methode d'ajout Very Happy
amine
amine
Admin

Messages : 124
Date d'inscription : 30/01/2008
Age : 35
Localisation : Montpellier

https://projet.bbactif.com

Revenir en haut Aller en bas

avancement de l'interface qt Empty Re: avancement de l'interface qt

Message  alain Dim 6 Avr - 21:58

Super les gars on va être bon la merci bien a amine, nico et davy pour leur boulot...
alain
alain

Messages : 16
Date d'inscription : 13/02/2008

Revenir en haut Aller en bas

avancement de l'interface qt Empty Re: avancement de l'interface qt

Message  amine Dim 6 Avr - 21:59

et christophe aussi Very Happy
amine
amine
Admin

Messages : 124
Date d'inscription : 30/01/2008
Age : 35
Localisation : Montpellier

https://projet.bbactif.com

Revenir en haut Aller en bas

avancement de l'interface qt Empty Re: avancement de l'interface qt

Message  nico Dim 6 Avr - 22:21

ah bah oué, christophe fait tout le gros boulot de la communication entre qt et base.cpp, c'est ultra prise de tete ça
nico
nico

Messages : 52
Date d'inscription : 30/01/2008
Age : 36
Localisation : Montpellier

Revenir en haut Aller en bas

avancement de l'interface qt Empty Re: avancement de l'interface qt

Message  amine Lun 7 Avr - 10:04

sinon j'ai pensé a un truc Very Happy c'est que les fonctions qui sont en void on les mettra en int, parce que ça peut renvoyer un code erreur, genre 0 si l'operation s'est bien deroulé, 1 si par exemple la clé a effacer n'existe pas etc... Faut etablir une liste d'erreur Very Happy
amine
amine
Admin

Messages : 124
Date d'inscription : 30/01/2008
Age : 35
Localisation : Montpellier

https://projet.bbactif.com

Revenir en haut Aller en bas

avancement de l'interface qt Empty Re: avancement de l'interface qt

Message  Marc Mar 8 Avr - 16:00

Bien joué !
Seul gros defaut !
T sous windaube Wink
Marc
Marc
Admin

Messages : 33
Date d'inscription : 30/01/2008

Revenir en haut Aller en bas

avancement de l'interface qt Empty Re: avancement de l'interface qt

Message  amine Mar 8 Avr - 16:04

Rolling Eyes ça marche aussi sous Linux \o/
amine
amine
Admin

Messages : 124
Date d'inscription : 30/01/2008
Age : 35
Localisation : Montpellier

https://projet.bbactif.com

Revenir en haut Aller en bas

avancement de l'interface qt Empty Re: avancement de l'interface qt

Message  Marc Mar 8 Avr - 17:12

amine a écrit:Rolling Eyes ça marche aussi sous Linux \o/
je sais bien mais ct de l'humour (dsl j'arrive pas a ton niveau encore Wink)
Marc
Marc
Admin

Messages : 33
Date d'inscription : 30/01/2008

Revenir en haut Aller en bas

avancement de l'interface qt Empty Re: avancement de l'interface qt

Message  amine Mar 8 Avr - 17:15

Laughing Laughing
amine
amine
Admin

Messages : 124
Date d'inscription : 30/01/2008
Age : 35
Localisation : Montpellier

https://projet.bbactif.com

Revenir en haut Aller en bas

avancement de l'interface qt Empty Re: avancement de l'interface qt

Message  nico Mar 8 Avr - 19:33

et oui, je suis sous "windaube"...qui fait tourner toutes mes grosses applications, tous mes jeux, tous les programmes dont j'ai besoin, sans (trop Rolling Eyes) ramer, sans bugger, ni planter.

alors vive Windaube \o/ vive Billou \o/ et vive la France.
nico
nico

Messages : 52
Date d'inscription : 30/01/2008
Age : 36
Localisation : Montpellier

Revenir en haut Aller en bas

avancement de l'interface qt Empty Re: avancement de l'interface qt

Message  davy Lun 14 Avr - 18:03

gg , désolé pour les , j'ai complêtement zappé de les virer, j'ai corrigé à l'instant.

davy

Messages : 26
Date d'inscription : 31/01/2008

Revenir en haut Aller en bas

avancement de l'interface qt Empty Re: avancement de l'interface qt

Message  nico Mer 23 Avr - 21:39

une petite maj des derniers jours :

on peut maintenant ajouter les données dans la base directement depuis l'interface, grâce à "Sauver la table" dans le menu

la fonction "retirer une ligne", qui prend en paramètre une clé et vire la ligne correspondante, est aussi implémentée

et j'ai fait un gestionnaire de tables présentes dans ./data...qui fonctionne pas, que j'arrive pas à finir, et que je finirai sans doute pas parce que ça me gave haha
à la place, j'ai juste fait en sorte que la fenetre "Ouvrir une table" (voir le vieux screen), s'ouvre directement dans le dossier data


pas besoin de new screens :p
je mets les fichiers a jour sur le svn
nico
nico

Messages : 52
Date d'inscription : 30/01/2008
Age : 36
Localisation : Montpellier

Revenir en haut Aller en bas

avancement de l'interface qt Empty Re: avancement de l'interface qt

Message  amine Mer 23 Avr - 21:42

et manque aussi la modification des champs.
par exemple quand on fait double clique sur une cellule, on la modifie, et quand on valide, on recupere la clé, le nom de la colonne, et la nouvelle valeur et hop, on appelle la fonction modifChamp(clé, nomCol, newVal)
mais c pas mechant Wink la fonction marche (sauf un petit bug tout mignon, quand on remplace la valeur par une moins longue...)
amine
amine
Admin

Messages : 124
Date d'inscription : 30/01/2008
Age : 35
Localisation : Montpellier

https://projet.bbactif.com

Revenir en haut Aller en bas

avancement de l'interface qt Empty Re: avancement de l'interface qt

Message  nico Dim 11 Mai - 22:46

c'est good pour la modification des champs via la gui
en plus, la sauvegarde de la table se fait maintenant automatiquement, à chaque modification d'une case

dès qu'on ajoute une nouvelle clé, on exécute la fonction "ajouter" de la base.
en paramètre, un string * donnees qui contient juste la clé entrée, puis des valeurs nulles pour chaque champs restant.
à ce moment là, la table est sauvegardée, puis à chaque modification des cases de la ligne, j'utilise la fonction modifChamp


sinon pour les petits trucs en plus, la taille de la fenetre est automatiquement redimensionnée, en fonction du nombre de lignes/colonnes.
une fois qu'une clé est entrée, la case n'est plus sélectionnable, car on ne peut pas la modifier (heureusement) avec la fonction modifchamp.
une ligne vide est automatiquement ajoutée (donc plus besoin du menu "Ajouter une ligne") lorsqu'une nouvelle clé est entrée.
si on veut écrire quelque chose dans une ligne qui ne contient pas encore de clé, la valeur saisie est automatiquement effacée de l'interface.

et le "Enlever une ligne" fonctionne aussi

c'est tout pour ce soir, tout est sur le svn


Dernière édition par nico le Lun 12 Mai - 6:38, édité 1 fois
nico
nico

Messages : 52
Date d'inscription : 30/01/2008
Age : 36
Localisation : Montpellier

Revenir en haut Aller en bas

avancement de l'interface qt Empty Re: avancement de l'interface qt

Message  amine Dim 11 Mai - 22:55

hhhouuuurrraaaaaaa
franchement mec t'assure trop \o/ ça avance a une vitesse, enorme
c'est plus complet que ce que j'imaginais xD
et y a aussi les fonctions de rajouter et enlever une colonne, mais je pense que c tres simple a faire Smile
(si tu as ma derniere version de Base et tout dans ton qt, je travaillerai directement sur celui la, pour eviter le portage a chaque fois Wink )
amine
amine
Admin

Messages : 124
Date d'inscription : 30/01/2008
Age : 35
Localisation : Montpellier

https://projet.bbactif.com

Revenir en haut Aller en bas

avancement de l'interface qt Empty Re: avancement de l'interface qt

Message  nico Lun 12 Mai - 0:19

comme tu dis, c'est vraiment tout con à faire tout ça
mais vu que je maitrise pas vraiment tout, parfois je passe des heures à faire une connerie...

genre pour bloquer la sélection d'une case qui contient une clé : j'ai passé plus de deux heures dessus, à chercher quelle fonction de quelle classe fallait utiliser, à quel moment...
au final, c'est une seule ligne à placer au bon endroit. et évidemment une fois que ça marche, on se dit "bah merde, c'était évident"


et sinon le moveCol, ja galère depuis plusieurs jours dessus, impossible de le faire fonctionner :s
ça vire bien la colonne, mais après ça fout un énorme bordel dans les données :

avancement de l'interface qt Moveco10

pour le dernier Base, je m'en occupe now.
nico
nico

Messages : 52
Date d'inscription : 30/01/2008
Age : 36
Localisation : Montpellier

Revenir en haut Aller en bas

avancement de l'interface qt Empty Re: avancement de l'interface qt

Message  nico Lun 12 Mai - 6:35

bon bah la nuit a été TRES fructueuse :
avancement de l'interface qt 110


tout ça fonctionne \o/
pour le problème du retrait de colonne...j'avais pas fait gaffe qu'il fallait utiliser movColBin......et pas movCol

il y a deux nouvelles classes : addcolwindow pour l'ajout de colonne (basée sur la createwindow), et findwindow pour la recherche.

j'ai fait un gros stresstest sur une base avec 5 colonnes et une trentaine de lignes ( Twisted Evil ROCK'N'ROLL) : ajout de colonne, ajout de ligne, retrait de ligne, ajout de colonne, rechercher de données, retrait de colonne, ajout de ligne etc etc etc

tout fonctionne très bien, sauf la recherche de données qui fait planter aléatoirement le programme (erreurs de segmentation)
(amine, j'ai cru un instant que t'avais codé sans aucun bug, ça m'a soulagé ces erreurs)

pour la recherche justement, voilà ce que ça donne :

avancement de l'interface qt 210

avancement de l'interface qt 310


et les données affichées dans la nouvelle fenetre "recherche", sont directement modifiables. on peut aussi supprimer une ligne directement depuis cette fenêtre.
l'affichage de la fenêtre principale est mis à jour dès qu'on ferme la fenetre de recherche.


allez, au dodo
tcho
nico
nico

Messages : 52
Date d'inscription : 30/01/2008
Age : 36
Localisation : Montpellier

Revenir en haut Aller en bas

avancement de l'interface qt Empty Re: avancement de l'interface qt

Message  amine Lun 12 Mai - 10:08

wah O_o quelqu'un qui code a 5h du matin... faudrait que j'essaye ça un jour xD
bien joué mec, là je vais m'occuper de la fonction recherchen et voir d'ou ça peut venir l'erreur de segmentation ;-)
(c'est pas parce qu'il n'y a aucune données dans le tableau a trouver?)

EDIT:
euh sous nunux il me mets cette erreur apres make

Code:

[amine@amine-laptop:~/SVN/FCHGUI]$ make
g++  -o FCHGUI Base.o Cchamps.o createwindow.o Ctable.o fusion.o main.o mainwindow.o moc_createwindow.o moc_mainwindow.o    -L/usr/lib -lQtGui -lQtCore -lpthread
mainwindow.o: In function `MainWindow::chDonnee()':
mainwindow.cpp:(.text+0x26ac): undefined reference to `FindWindow::FindWindow(Base*)'
mainwindow.o: In function `MainWindow::ajoutColonne()':
mainwindow.cpp:(.text+0x2f5c): undefined reference to `AddColWindow::AddColWindow(Base*)'
collect2: ld a retourné 1 code d'état d'exécution
make: *** [FCHGUI] Erreur 1



amine
amine
Admin

Messages : 124
Date d'inscription : 30/01/2008
Age : 35
Localisation : Montpellier

https://projet.bbactif.com

Revenir en haut Aller en bas

avancement de l'interface qt Empty Re: avancement de l'interface qt

Message  nico Lun 12 Mai - 14:11

g++ -o FCHGUI Base.o Cchamps.o createwindow.o Ctable.o fusion.o main.o mainwindow.o moc_createwindow.o moc_mainwindow.o -L/usr/lib -lQtGui -lQtCore -lpthread

t'as oublié de prendre les classes findwindow et addcolwindow, et les moc qui vont avec.


et le plantage avec la recherche ça se fait que sur certaines recherches...
par exemple, sur le screen plus haut, il y a deux lignes qui contiennent "heh"
avant de prendre le screen, il y en avait 3, j'avais fait une recherche et ça m'avait bien renvoyé les trois lignes contenant "heh"
j'ai viré une des trois lignes, aucun problème, mais depuis dès que je recherche à nouveau "heh", ça plante

faudrait que tu testes directement dpuis l'interface textuelle, je vois pas d'où ça peut venir
nico
nico

Messages : 52
Date d'inscription : 30/01/2008
Age : 36
Localisation : Montpellier

Revenir en haut Aller en bas

avancement de l'interface qt Empty Re: avancement de l'interface qt

Message  amine Lun 12 Mai - 15:48

pour l'erreur de segmentation.
avant:
on avait un tableau de string * data de taille nbCh*le nbre de ligne donnée trouvée.
apres:
j'ai mis le tableau data de taille nbCh*le nbre de lignes trouvée+1

pourquoi + 1?
ce dernier champs, j'y ai placé un @. et dans l'interface, tu arrete de parcourir le tableau des que tu trouve le @ et comme ça, tu eviteras la pu**** d'erreur de segmentation Very Happy

la partie du code qui traite ça
Code:

if(!trouve.empty())
   {
      string * ligne = new string[trouve.size()+1];
      for(int i=0; i
      {
         ligne[i] = trouve[i];
         //cout << ligne[i] << " | ";
         if((i+1)%nbCh == 0)
            cout << endl;
      }
      ligne[trouve.size()] = "@";
      return ligne;
   }
   return NULL;

EDIT: pour mes classes, maintenant elle sont en .cpp et plus en .cc Wink
amine
amine
Admin

Messages : 124
Date d'inscription : 30/01/2008
Age : 35
Localisation : Montpellier

https://projet.bbactif.com

Revenir en haut Aller en bas

avancement de l'interface qt Empty Re: avancement de l'interface qt

Message  nico Lun 12 Mai - 16:44

testé...et approuvé !

en effet, ça tourne impec maintenant, plus aucun problème !

merci bien
nico
nico

Messages : 52
Date d'inscription : 30/01/2008
Age : 36
Localisation : Montpellier

Revenir en haut Aller en bas

avancement de l'interface qt Empty Re: avancement de l'interface qt

Message  nico Lun 12 Mai - 21:16

depuis toute à l'heure, il y a eu l'ajout de la gestion backup/récupérations des données en cas de bug

maintenant le menu "Sauver la table" sert à faire un nouveau backup
si jamais il y a bug et que les données sont perdues, on click sur "Récupérer la table" et ça charge le dernier backup.

plus tard, quand on quittera la programme, ça demandera si on veut garder les dernières modifications, si oui le backup est mis à jour, et on remplace la table par son backup
sinon, on remplace directement la table par le dernier backup, sans mise à jour.

les booléens sont aussi implémentés
nico
nico

Messages : 52
Date d'inscription : 30/01/2008
Age : 36
Localisation : Montpellier

Revenir en haut Aller en bas

avancement de l'interface qt Empty Re: avancement de l'interface qt

Message  davy Mar 13 Mai - 0:15

Cool,
sinon j'ai remarquer une erreur, mais ce n'est que côté console. Par exemple je crée une table, je l'apelle aaaaaa, puis je choisit l'option 5 d'amine qui affiche normalement les données et paff erreur de segmentation. Car il tente d'ouvrir un tableau dynamique de taile 0 ^^. A la fin pour compiler tous le programme je ferais un makefile pour compiler le mode console et gui. Smile

PS: bon je piges plus rien l'erreur a disparu. au passage j'ai rêglé quelques 'warnings'. J'avais trouvé un if (nbLine = 3) j'ai corriger et rajouter le = manquant Wink, c'était dans la méthode initSize de la classe Base.

davy

Messages : 26
Date d'inscription : 31/01/2008

Revenir en haut Aller en bas

avancement de l'interface qt Empty Re: avancement de l'interface qt

Message  amine Mar 13 Mai - 9:31

ne pas conduire sous l'emprise de l'alcool (et ne pas coder, pareil)

ouai c'est une erreur de ma part, merci davy ^^
amine
amine
Admin

Messages : 124
Date d'inscription : 30/01/2008
Age : 35
Localisation : Montpellier

https://projet.bbactif.com

Revenir en haut Aller en bas

avancement de l'interface qt Empty Re: avancement de l'interface qt

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Page 1 sur 2 1, 2  Suivant

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser