Seite 1 von 1

QSettings auslesen

Verfasst: 18. August 2007 20:16
von law.skynet
ich habe ein problem mit qsettings.

ich habe mir eine settingsmanager klasse gschrieben:

Code: Alles auswählen

.....

QString SettingsManager::readSettings()
 {
    return "foobar";
}

....
in meiner mainwindow klasse lese ich den wert dann aus.

Code: Alles auswählen

......
SettingsManager settingsManager;

QString test;

test = settingsManager.readSettings();
qDebug() << "dbg()" << test;

das funktioniert auch. aber wenn ich readSettings auf folgendes ändere. bekomme ich einen segfault.

Code: Alles auswählen

QString SettingsManager::readSettings()
 {
    return settings->value("setting1").toString();
}
warum funktioniert das nicht? ich habe einfach keine ahnung mehr....

habe soeben herausgefunden, dass es in der main() funktion (in main.cpp) ohne probleme funktioniert.

Verfasst: 19. August 2007 00:06
von caligano
Ist der Pointer settings in der Klassendeklaration der Klasse SettingsManager global deklariert? Wohl eher nicht ...

Verfasst: 19. August 2007 00:39
von law.skynet
settings ist in der klasse SettingsManager vi a header file deklariert. und gibt auch einen string zurück.

Code: Alles auswählen

...
class QSettings;

class SettingsManager
{
    public:
    QSettings *settings;
....

Verfasst: 19. August 2007 09:31
von NoobSaibot
und du hast irgendwo im SettingsManager auch

Code: Alles auswählen

settings = new QSettings( ... );
stehen?

Verfasst: 19. August 2007 10:42
von law.skynet
NoobSaibot hat geschrieben:und du hast irgendwo im SettingsManager auch

Code: Alles auswählen

settings = new QSettings( ... );
stehen?
das war der richtige hinweis! danke.

ich habe settings in einer funktion aufgerufen und nicht gleich beim erstellen der klasse!

vielen dank noch einmal!