próbowałem ale wnioski są takie
@kq ma rację - bo Qt domyślnie koduje w UTF-8 (wczoraj przeglądałem to co podałeś @alagner)
void QSettings::setIniCodec(const char *codecName)
idąc dalej zaglądając do dokumentacji wymienione są rodzaje kodowania plików
więc tak naprawdę nic nie wskóram, musiałbym to konwertować na ASCII albo najlepiej iść za radą @kq i używać angielskiej terminologii
w sumie przy wątku poruszę jeszcze jedną kwestię. Jest jedna funkcja która wydaje mi się taka z tylnej części ciała, bo jej dwa argumenty przeczą same sobie i o to ponizej ta "wspaniała" funkcja
void QSettings::setPath(QSettings::Format format, QSettings::Scope scope, const QString &path)
która przyjmuje trzy argumenty
- Pierwszy argument to
format pliku
w jakim chcemy przetrzymywać ustawienia
- Drugi argument to
zakres
- wynika z tego, że jest to coś w rodzaju domyślnej ścieżki zapisu pliku z ustawieniami - opis
- Trzeci argument to
ścieżka do katalogu
gdzie ten plik będzie zapisany
argumenty drugi i trzeci wzajemnie się wykluczają - bo powinno być albo "domyślny zakres" albo "podaje się na sztywno ścieżkę".
żeby plik miał właściwą nazwę, to trzeba mu nadać nazwę organizacji
QCoreApplication::setOrganizationName("test");
a poniżej cały kod
QHostAddress ip;
ip.setAddress("192.168.0.1");
QCoreApplication::setOrganizationName("test");
QSettings setting;
setting.setIniCodec("UTF-8");
setting.setPath(QSettings::IniFormat,QSettings::UserScope,"/home//Projekty-Qt/konsolówki/konsolowe-Debug/");
setting.beginGroup("Ustawienia IP");
setting.setValue("IP_addr",ip.toString());
setting.endGroup();
setting.beginGroup("Nazwa użytkownika");
setting.setValue("Jakiś User",2);
setting.endGroup();
qDebug()<< setting.status();
powyższy kod zapisuje mi tylko w lokalizacji QSettings::UserScope
- a ścieżka do tego jest taka /home/user/.config
więc skoro tak, to po co jest ten TRZECI ARGUMENT ? Jeżeli nie jest brany pod uwagę ?
wiem, że jest konstruktor
QSettings(const QString &fileName, QSettings::Format format, QObject *parent = nullptr)
który stworzy mi odpowiedni format pliku i zapisze plik tam gdzie chcę, ale niech mi ktoś wyjaśni, po co taka bezsensowna funkcja z wzajemnie wykluczającymi się argumentami ?