Aller au menu - Aller au contenu

Enregistrer vos options avec QSettings

Pour accéder à cette section
Connectez-vous !
connexion_rpx
Page 1 
Pseudo Commentaire
Page 1 
Hors ligne sh@kk' # Posté le 05/11/2008 à 01:52:09
Avatar

Merci, c'est super pratique ça ! ^^ Je te mets 19/20!
Hors ligne pierreyoda # Posté le 05/11/2008 à 08:39:15
Avatar

Bon tuto :) . Je savais depuis longue date me servir de QSettings (les exemples permettent d'apprendre facilement pour reproduire), mais ce tuto permet d'approfondir mes connaissances (notamment les sous-clés (beginGroup()...).
Pour info, on peut définitivement définir les noms d'entreprise... pour utiliser le constructeur par défaut. Par exemple, dans le main :
Code : C++
1
2
3
QCoreApplication::setApplicationName("Zeditor"); // Nom d'application
QCoreApplication::setOrganizationName("Pierreyoda"); // Nom d'entreprise
QCoreApplication::setOrganizationDomain("http://pierreyoda.jimdo.com"); // Site
Hors ligne frigodor # Posté le 05/11/2008 à 09:31:09
Code less, create more !
Avatar

Ville : Le vésinet
Pays : France métropolitaine

C'est trop cool de pouvoir enregistrer les préférences pour un logiciel.
Très bon sujet et bien rédigé : 20/20
 
Hors ligne cube45 # Posté le 05/11/2008 à 14:03:04
Avatar

Ville : Olivet
Pays : France métropolitaine
Études : SUPINFO Région Centre à Orléans

Bonjour,
Très bon tutoriel, seulement tu parles à un moment de la possibilité de créer des fichiers .ini, tu devrais peut être dire dans ton tuto comment faire...
En utilisant la fonction:
Code : C++
1
QSettings::QSettings ( Format format, Scope scope, const QString & organization, const QString & application = QString(), QObject * parent = 0 )


Très bon tuto dans le reste, continues ainsi!

Citation : Alexander Kotov
Un plan correct fait de nous des héros ; l'absence de plan fait de nous des zéros.

 
Hors ligne spider-mario # Posté le 05/11/2008 à 15:15:29
Avatar

Ville : Montigny-lès-cormeilles
Pays : France métropolitaine
Études : INSA Rouen

Le dernier argument, c'est un pointeur vers un QObject qui se chargera de le libérer, tous les constructeurs de classes Qt disposent de cet argument.
Exemple :
Code : C++
1
2
3
QObject* test=new QObject;
QObject* toto=new QObject(test); /* test est parent de toto */
delete test; /* test étant le parent de toto, il se charge de le libérer en même temps qu'il est lui-même détruit */


En espérant t'avoir éclairci :p
Hors ligne Gojira # Posté le 05/11/2008 à 16:14:41
Avatar

Salut , super tuto !



 
Hors ligne granarc # Posté le 05/11/2008 à 18:14:10
I am mad...
Avatar

Avis : Très bon

Ville : Martigues
Pays : France métropolitaine

Merci beaucoup à tous pour ces commentaires, ça fait chaud au coeur :honte: (c'est mon premier tuto en plus ^^ )

Citation : cube45
Très bon tutoriel, seulement tu parles à un moment de la possibilité de créer des fichiers .ini, tu devrais peut être dire dans ton tuto comment faire...

En fait, j'avais prévu d'en parler, mais en examinant ce que je pouvais dire, je me suis rendu compte qu'il n'y avait en fait pas vraiment de techniques spécifiques aux fichiers .ini, donc je me suis dit que ça ne manquerait pas trop au tuto ;)

J'envisage quand même de faire une petite annexe qui parlerait de ça et de la gestion des QSettings en pratique (c'est-à-dire comment fait-on généralement dans un programme pour charger / sauver la configuration).

Citation : spider-mario
Le dernier argument, c'est un pointeur vers un QObject qui se chargera de le libérer, tous les constructeurs de classes Qt disposent de cet argument.
Exemple :
Code : C++
1
2
3
QObject* test=new QObject;
QObject* toto=new QObject(test); /* test est parent de toto */
delete test; /* test étant le parent de toto, il se charge de le libérer en même temps qu'il est lui-même détruit */


En espérant t'avoir éclairci :p

Merci, c'est on à savoir, parce que ça veut dire que si on alloue l'objet dynamiquement sans préciser de QObject parent, il sera pas détruit à la fin du programme :(


PS: Désolé pour les schémas faits à coup de console, mes maigres talents en graphisme vous auraient fait peur :p Si quelqu'un avait la gentillesse de me les faire, ça serait sympa :-° (avec votre nom à la fin du tuto, pas de problème !)

Que le grand cric me croque si tu as lu la FAQ et fait une recherche :-°
Image utilisateur
Ce que pourrait engendrer une invasion de kikoolol en France... :waw:
 
Hors ligne rotoclap-le-connard # Posté le 06/11/2008 à 23:04:59
Groupe : Bannis

C'est pas mal mais le tutoriel n'est pas trop bien placer dans la partie C++, c'est pas trop des truc vraiment C++ c'est plus dans Interface Graphique qu'il faudrait le placer (ou alors demande à faire une partie Qt)
Hors ligne granarc # Posté le 07/11/2008 à 17:18:43
I am mad...
Avatar

Avis : Très bon

Ville : Martigues
Pays : France métropolitaine

Ben non, justement, c'est pas de l'interface graphique :) C'est juste un outil pour enregistrer plus facilement des données, c'est entièrement virtuel. C'est sûr que je ne parle pas du C++ lui-même, mais tu pourras remarquer que j'ai mis le flag [Qt] dans le titre ^^

Mais effectivement, ça serait bien qu'une partie réservée à Qt soit créée ;)

Que le grand cric me croque si tu as lu la FAQ et fait une recherche :-°
Image utilisateur
Ce que pourrait engendrer une invasion de kikoolol en France... :waw:
 
Hors ligne spider-mario # Posté le 07/11/2008 à 18:29:08
Avatar

Ville : Montigny-lès-cormeilles
Pays : France métropolitaine
Études : INSA Rouen

Non car dans ce cas pourquoi ne pas faire également une partie SDL, une partie FLTK, une partie SFML, une partie wxWidgets, une partie GTK+, une partie OpenAL, une partie OpenGL, une partie Irrlicht, une partie OGRE, une partie ODE... Enfin vous avez compris je suppose :p
Ce tuto a tout à fait sa place dans la partie C++, si les tuto C++ devaient se limiter à la syntaxe du langage et à la bibliothèque standard ce serait très limité je trouve.
Hors ligne rotoclap-le-connard # Posté le 07/11/2008 à 22:02:24
Groupe : Bannis

Je suis en train de demander la création d'une partie Qt avec mon tuto :) (QScintilla dans ma signature)
Hors ligne Tomn # Posté le 07/11/2008 à 23:13:12
Avatar

Super tutoriel ! Je connaissais QSettings mais je ne savais pas qu'on pouvait écrire dans des .ini et les fonctions de lecture.
Donc merci beaucoup !

Ce qui est pratique avec les QSettings, c'est qu'on peut se servir des valeurs partout dans le programme (et je crois avec d'autres programmes, utile lorsqu'on fait un groupe d'applications Office).


P.S. : un tutoriel est disponible sur ce site pour écrire et lire des fichiers .ini ...

C/C++ • (x)HTML • CSS • PHP/SQL • JavaScript • Objective-C • Infographie 2D/3D • …
 
Hors ligne Nelty # Posté le 08/11/2008 à 11:18:21
Garfield in the US
Avatar
Groupe : Anciens
Flux RSS

Ville : Owatonna
Pays : États-Unis

Ah, c'est vrai qu'avec cette classe c'est beaucoup plus pratique de sauvegarder la configuration, et en plus de manière propre. :)

Sinon, bon tuto, je mets 17.
Hors ligne rotoclap-le-connard # Posté le 08/11/2008 à 12:40:03
Groupe : Bannis

Sa y est j'ai demandé la création d'une catégorie Qt, mais encore mieux il on fais plein de catégorie (Programmation->Bibliothèque->SDL, OpenGL, Qt, ...)
Ce soir on pour tous déplacer notre tuto :)
(Merci qui :-° )
Hors ligne Thomash # Posté le 29/11/2008 à 19:36:25

Ville : Paris
Pays : France métropolitaine
Études : ENS Paris

Très bon tuto, c'est justement ce dont j'avais besoin.

Citation : Robert X. Cringely
Si l'automobile avait progressé de la même façon que l'informatique, une Rolls-Royce couterait aujourd'hui 100 dollars, ferait 300 000 kilomètres avec un seul litre d'essence et exploserait une fois par an en tuant tous ses passagers.
 
Hors ligne granarc # Posté le 10/12/2008 à 16:25:44
I am mad...
Avatar

Avis : Très bon

Ville : Martigues
Pays : France métropolitaine

Petit up, ajout d'une partie Annexes que je vous conseille de lire ^^

Que le grand cric me croque si tu as lu la FAQ et fait une recherche :-°
Image utilisateur
Ce que pourrait engendrer une invasion de kikoolol en France... :waw:
 
Hors ligne spider-mario # Posté le 22/12/2008 à 19:02:17
Avatar

Ville : Montigny-lès-cormeilles
Pays : France métropolitaine
Études : INSA Rouen

Citation : rotoclap-le-connard
Sa y est j'ai demandé la création d'une catégorie Qt, mais encore mieux il on fais plein de catégorie (Programmation->Bibliothèque->SDL, OpenGL, Qt, ...)
Ce soir on pour tous déplacer notre tuto :)
(Merci qui :-° )


Génial, nous voici condamnés à ne nous manger que des tutos OpenGL, SDL et Qt :-°
Hors ligne skyko # Posté le 29/06/2009 à 12:14:08
Technobimbo ? Non, Geek.
Avatar

Ville : Tanger
Pays : Maroc

Salut ^^ Super Tuto, j'ai appris tout plein de trucs... Et puis il m'a été utile : Je l'ai utilisé lors d'un projet : et il m'a été super utile ^^ Je mets un 20/20 !!
 
Hors ligne braindead # Posté le 22/07/2009 à 00:14:37

Bonjour à tous,
avant toute chose, je voudrais dire que je trouve ce site formidable.
En effet, c'est le seul jusqu'à présent qui ait réussi à m'expliquer de manière claire, structurée et concise comment coder 'correctement'.
Cependant, même si tout va très bien depuis les 2 - 3 jours que je code, je viens de tomber sur un os.
Et malgré 2h de recherche, je ne parviens pas à solutionner mon souci.
En fait je voudrais m'approprier l'outil d'enregistrement des préférences.
Pour ce faire j'ai donc suivi le tuto et j'ai mis ceci dans mon main.cpp :
Code : Autre
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
#include <QApplication>
#include <QWidget>
#include <QSettings>
#include <QCloseEvent>


class MaClasse : QWidget // Peut hériter de n'importe quelle classe fille de QWidget
{
    public:
        MaClasse();
        /* Vos méthodes */

    private:
        /* Vos attributs */

    protected:
        void closeEvent(QCloseEvent *event);
};


void MaClasse::closeEvent(QCloseEvent *event)
{
    QSettings settings("../mesoptions.ini", QSettings::IniFormat);
    settings.beginGroup("Identite");
    settings.setValue("nom", "granarc");
    settings.setValue("age", 13);
    settings.endGroup();
    event->accept();
}


int main(int argc, char* argv[])
{
    QApplication app(argc, argv);

    QWidget widget;
    widget.show();


    return app.exec();
}


Problème le fichier n'est pas généré à la sortie (je précise que je tourne sous seven, y a t il une incidence ?)
J'ai tenté de mettre "event->ignore();" pour voir si la commande était transmise mais j'arrive malgré tout à fermer la fenêtre.

Je précise que j'ai ajouté le "#include <QCloseEvent>"
sans quoi j'obtenais une erreur au moment de la compilation
Hors ligne Amnell # Posté le 27/12/2009 à 18:20:28
Avatar

Peut-être faudrait-il parler des fonction beginReadArray et beginWriteArray ?
D'autre part, des &amp; se sont incrustés dans les codes, il faudrait résoudre ce problème.
 
Hors ligne Zalhfire # Posté le 18/01/2010 à 22:00:44
Avatar

Ville : Ploërmel
Pays : France métropolitaine
Études : UTC

Tuto Genial !!!
Je cherchais une maniere intelligente de sauvegarder pas mal de donnés pour un Jeu :p
(notament les caracteristiques d'un perso et la stade du jeu au quel il se trouve )
Merci encore pour se tuto qui me permet de ne pas me casser la tete a tout enregistrer dans un fichier texte galere ...
20/20 instructif et passionnant ;)

bonne continuation ^^
Hors ligne Comartie # Posté le 17/03/2010 à 10:55:38

Un cas n'a pas été traité dans le tuto : que se passe-t-il lors du premier lancement du programme ? On essai de lire des paramètres qui n'existerons que lors de la première écriture (cad à la fermeture du programme). Comment tester l'existence de paramètre avant le chargement? Et s'il n'en n'existe pas charger des paramètres pas défaut.

Dernière chose enregistrer les paramètres à la fermeture du programme n'est pas très intelligent (ça fait beaucoup d'enregistrement pour rien, notamment). La majorité des programme proposent une fenêtre de préférence, il serait mieux d'enregistrer des préférences ici.
Hors ligne Nicolas M. # Posté le 11/04/2010 à 19:46:17
M(NiCoLaSm) = 406,9 g/mol
Avatar

Avis : Très bon

Ville : Notre-dame de bondeville
Pays : France métropolitaine

Très bon tuto, mais tu ne devrais pas dévoiler comme ça ton identité, on ne sait pas qui peut la récupérer :ninja: à moins que tu aies prévu le coup et mis une fausse identité :soleil:
Secret (cliquez pour afficher)
Code : Ini - Il y a une fuite chez les *.conf !
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
vivant=true
reel=true

[Identite]
nom=granarc
age=13
Famille/Freres/frere1=Remi
Famille/Soeurs/soeur1=Pauline
Famille/Soeurs/soeur2=Laura
orphelin=false
Famille/mere=Josiane
Famille/pere=Patrick

[Coordonnees]
ville=Martigues
Maison/rue=rue des Lilas
Maison/numero=27
codePostal=13500

Tu es vivant, réel, ton pseudo est granarc, tu as 13 ans, tu as un frère Rémi et deux sœurs Pauline et Laura, tu n'es pas orphelin, tes parents s'appellent Josiane et Patrick. Enfin, tu habites au 27, rue des Lilas, 13500 Martigues, Bouches-du-Rhône. :magicien: C'est fou, ce qu'on apprend dans un simple fichier .conf ! :lol:


Astuce : Tu peux coloriser le code des *.conf ou *.ini avec <code type="ini"> ;)

Image utilisateur Image utilisateur

Le saviez-vous ? Les forums sont environ 283 174 fois plus efficaces que ma boîte MP pour vous aider. ;)
Image utilisateur
 
Hors ligne silentphoebus # Posté le 21/12/2010 à 16:33:43

Il y a un problème d'affichage des & lorsque tu donnes le code des prototypes.
Hors ligne benji031 # Posté le 25/12/2010 à 22:18:09
Erreur 404 not found!
Avatar

Ville : Labastide beauvoir
Pays : France métropolitaine

Super tuto merci!!
J'arriver pas a m'en servire et maintenant ca va tout seul!!:)

[TUTO]Comment avoir internet gratuit!
Le travail d’équipe est essentiel. En cas d’erreur, ça permet d’accuser quelqu’un d’autre.
Des chercheurs qui cherche, on en trouve. Des chercheurs qui trouve, on en cherche !
C'est en essayant qu'ont risque de se tromper !
 
Hors ligne Jérôme Deuchnord # Posté le 12/11/2011 à 15:21:14
Ma config est sur ma page
Avatar

Avis : Bon

Il y a un problème avec l'affichage des & qui ont été remplacés par des &amp;...
Sinon, bravo pour le tuto !
Petite question en passant :
Peut-on modifier des clés de registres système avec Qt ?

Jérôme Deuchnord

Rejoignez le mouvement anti-phishing avec PhishKiller !

Viens ici, petit robot spammeur...
 
Pour accéder à cette section
Connectez-vous !
connexion_rpx