Es gibt zwei Möglichkeiten:
Welcher Ansatz ist besser?
Dies hängt davon ab, wie Sie Ihre Einstellungsdatei verwenden. Möchten Sie dem Benutzer Ihrer Anwendung erlauben, dynamisch die Einstellungen in der Datei (z. B. INI-Datei) zu ändern? Oder die Einstellungen müssen von der GUI gesetzt werden?
Wenn Sie eine GUI verwenden, um die Einstellungen zu ändern, rate ich Ihnen, die Haupteinstellungen zu Beginn Ihrer Anwendung beispielsweise aus einer statischen Klasse zu laden.
%Vor%Dann ist es kein Problem, Ihre geänderten Werte bei Bedarf zu speichern, weil QSettings Optimierung.
%Vor%Wenn Sie besorgt sind, können Sie jede logische Gruppe von Einstellungen hinter eine Schnittstelle stellen. Erstellen Sie dann eine konkrete Klasse, die QSettings verwendet, um Einstellungen bei Bedarf abzurufen.
Wenn Sie feststellen, dass dies ein Leistungsengpass ist, erstellen Sie eine konkrete Klasse, in der die Einstellungen zwischengespeichert werden. (Ich musste das nie tun. QSettings war immer schnell genug.)
In der Dokumentation von QSettings
steht, dass es sehr gut optimiert wurde .
Intern speichert es eine Karte von QStrings zu QVariants. Alle Accessor-Methoden sind sehr nützlich und einfach zu bedienen.
Wenn ich QSettings
verwendet habe, habe ich es ähnlich wie in ihrem Beispiel mit readSettings()
und writeSettings()
functions eingerichtet. Sehen Sie sich dieses Beispiel ungefähr auf halbem Weg an.
In dem Moment, in dem ich readSettings()
aufruft, wird das QSettings-Objekt erstellt, es lädt die Werte bei Bedarf und behält alle Einstellungen in einer Struktur bei.
Also stelle ich in meiner Hauptfunktion sicher, dass ich meinen Anwendungsnamen und meinen Organisationsnamen einrichte, und ich verwende auch QSettings::setFormat
, und danach, wenn ich auf QSettings zugreifen möchte, erstelle ich eine Instanz von QSettings mit Standardparametern und auf die Einstellungen zugreifen.