Alles rund um die Programmierung mit Qt
-
QtBerserker
- Beiträge: 71
- Registriert: 15. Mai 2006 09:07
Beitrag
von QtBerserker »
Hallo,
offenbar kann ich wohl die Doku zu QSettings
http://doc.trolltech.com/4.2/qsettings.html#childKeys nicht so recht lesen:
Code: Alles auswählen
#include <QApplication>
#include <QSettings>
#include <QStringList>
#include <QtDebug>
int main( int argc, char* argv[] )
{
QApplication app( argc, argv );
QSettings settings("settings.ini", QSettings::IniFormat);
settings.beginGroup( "Paths" );
settings.setValue( "Prefix/1.2.3", "/path/to" );
settings.setValue( "Prefix/4.3.2", "/path/to" );
settings.endGroup();
settings.beginGroup( "Paths" );
QStringList group = settings.childKeys();
for(int child = 0; child != group.size(); ++child) {
QString childVersion = group.at(child);
qDebug() << childVersion;
}
settings.endGroup();
qDebug() << "----------------------";
}
ergibt:
$ make && ./test && cat settings.ini
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -I. -o settings.o settings.cpp
g++ -o test settings.o -L/usr/lib -lQtGui -lQtCore -lpthread
----------------------
[Paths]
Prefix\1.2.3=/path/to
Prefix\4.3.2=/path/to
und sollte imo 1.2.3 und 4.3.2 ausgeben; nehme ich childGroups() kommt:
$ make && ./test && cat settings.ini
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -I. -o settings.o settings.cpp
g++ -o test settings.o -L/usr/lib -lQtGui -lQtCore -lpthread
"Prefix"
----------------------
[Paths]
Prefix\1.2.3=/path/to
Prefix\4.3.2=/path/to
Ich habe hier libqt 4.2.1-2 (debian/sarge). Habe ich hier einen Bug in Qt? Wer reisst mir das Brett vom Kopf weg?
Viele Grüße
Olaf
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
-
Kontaktdaten:
Beitrag
von Christian81 »
QtBerserker hat geschrieben:
und sollte imo 1.2.3 und 4.3.2 ausgeben; nehme ich childGroups() kommt:
Laut Doku nicht.
http://doc.trolltech.com/4.2/qsettings.html#beginGroup
Die Group wird nur über beginGroup festgelegt - was innerhalb von setValue angegeben wird interessiert nicht
Code: Alles auswählen
settings.beginGroup( "Paths" );
settings.beginGroup( "Prefix" );
settings.setValue( "1.2.3", "/path/to" );
settings.setValue( "4.3.2", "/path/to" );
settings.endGroup();
settings.endGroup();
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
-
QtBerserker
- Beiträge: 71
- Registriert: 15. Mai 2006 09:07
Beitrag
von QtBerserker »
Ich bin doch nicht blöd, oder doch? (Besser nicht antworten

)
Code: Alles auswählen
#include <QApplication>
#include <QSettings>
#include <QStringList>
#include <QtDebug>
int main( int argc, char* argv[] )
{
QApplication app( argc, argv );
QSettings settings("settings.ini", QSettings::IniFormat);
settings.beginGroup( "Paths" );
settings.beginGroup( "Prefix" );
settings.setValue( "1.2.3", "/path/to" );
settings.setValue( "4.3.2", "/path/to" );
settings.endGroup();
settings.endGroup();
settings.beginGroup( "Paths" );
QStringList group = settings.childGroups();
for(int child = 0; child != group.size(); ++child) {
QString childVersion = group.at(child);
qDebug() << childVersion;
}
settings.endGroup();
qDebug() << "----------------------";
}
ergibt:
$ make && ./tmp && cat settings.ini
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -I. -o settings.o settings.cpp
g++ -o tmp settings.o -L/usr/lib -lQtGui -lQtCore -lpthread
"Prefix"
----------------------
[Paths]
Prefix\1.2.3=/path/to
Prefix\4.3.2=/path/to
Hierauf schon
Grüße & Dank
Olaf