hmmm... I guess you are right. My little test app seems to work correctly:

Qt Code:
  1. #include <QSettings>
  2. #include <QString>
  3.  
  4. void saveSettingsArray()
  5. {
  6. QSettings settings("MKrueger", "SettingsTest");
  7. settings.beginWriteArray("blogAccounts");
  8.  
  9. for (int i = 0; i <= 2; ++i)
  10. {
  11. // This is a new account, we will save it to the end of the list ...
  12. settings.setArrayIndex(i);
  13. settings.setValue("accountName", "Test-Account: " +
  14. QString::number(i));
  15. settings.setValue("hostName", "www.michael-krueger.org");
  16. }
  17. settings.endArray();
  18. }
  19.  
  20. void loadSettingsArray()
  21. {
  22. QSettings settings("MKrueger", "SettingsTest");
  23. int size = settings.beginReadArray("blogAccounts");
  24.  
  25. for (int i = 0; i < size; ++i)
  26. {
  27. // Select the data set
  28. settings.setArrayIndex(i);
  29. //
  30. QString temp("accountName: ");
  31. temp += settings.value("accountName").toString();
  32. qDebug(temp.toAscii());
  33. temp = "hostName: ";
  34. temp += settings.value("hostName").toString();
  35. qDebug(temp.toAscii());
  36. }
  37. settings.endArray();
  38. }
  39.  
  40. int main(int /*argc*/, char /**argv[]*/)
  41. {
  42. saveSettingsArray();
  43. //
  44. loadSettingsArray();
  45. return 0;
  46. }
To copy to clipboard, switch view to plain text mode 

The app above does work as expected. I need to double check my application.

The output is correctly:
Qt Code:
  1. micha@helium:~/develop/QSettingsTest> ./QSettingsTest
  2. accountName: Test-Account: 0
  3. hostName: www.michael-krueger.org
  4. accountName: Test-Account: 1
  5. hostName: www.michael-krueger.org
  6. accountName: Test-Account: 2
  7. hostName: www.michael-krueger.org
  8. micha@helium:~/develop/QSettingsTest>
To copy to clipboard, switch view to plain text mode 

... very strange, very strange ...