So laden Sie Einstellungen in der Qt-App mit QSettings

9

Es gibt zwei Möglichkeiten:

  • lade alle Einstellungen in eine Struktur
  • lädt On-Demand-Werte

Welcher Ansatz ist besser?

    
user1180567 16.01.2013, 18:56
quelle

3 Antworten

7

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%     
Kévin Renella 16.01.2013, 19:22
quelle
3

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.)

    
cgmb 16.01.2013 19:03
quelle
2

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.

%Vor%     
phyatt 16.01.2013 19:11
quelle

Tags und Links