Bonjour tout le monde
Deuxième post de la journée. Et nouveaux problèmes. L'idée à la base est simple, mais la réalisation compliquée. J'ai besoins de conseils et d'avis pour réaliser une interface du style picasa 3 voir photos :
L'idée c'est que au lieu d'avoir des photos j'ai des éléments textes et images sur des utilisateurs. Pour ca j'ai créer une interface avec Qt designer.
Cette interface s'appelle . "miniature"
L'idée c'est de récupérer tous les user d'une base de donnée et d'afficher les éléments propre à chaque utilisateur dans une "miniature". C'est miniature sont ranger en groupe comme les images sont rangés dans des dossiers dans piacasa. L'idée est d'avoir la meme ergonomie (cliquer glisser pour changer de groupe - cliquer et optenir une fenetre de modif - etc.. ).
Voila en esperant que vous avais compris l'idée de base.
Maintenant passons au code. Voila ce que j'ai fais :
Voila ce code fonctionne mais j'aimerais savoir si je m'y prend de la bonne manière? Je suis preneur de conseils en tout genre. J'ai un temps de chargement qui est pas terrible mais ca marche.
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 QSqlQuery query(db2); query.exec("SELECT * from user ORDER BY groupe_user ASC"); //QGridLayout *layout = new QGridLayout; QList<miniature *> v; //initialisation des variables de mise en forme int x,y = 0; int sauvegroupe = -1; //boucle pour aller de personnes en personnes while(query.next()) { //creation de l'entete nouveau groupe if(query.value(7).toInt()!=sauvegroupe) { if (y!=0) { x++; y=0; } sauvegroupe = query.value(7).toInt(); } //creation de la miniature miniature* tete=new miniature(parent); //attribution des informations tete->setnomprenom(query.value(1).toString(),query.value(2).toString()); tete->setpass(query.value(11).toString()); tete->setlogin(query.value(10).toString()); v.push_back (tete); //ajout aux widgets ui->gridLayout->addWidget(tete, x, y); y++; //retour à la ligne if (y>4) { y=0; x++; } } setLayout(ui->gridLayout);
Merci d'avance.
Partager