Zrobiłem sobie taki program do zapisywania plików JSON
gdy wpisuję jakieś dane w pole QLineEdit
to wpisane wartości mi się nie zapisują do pliku, tylko za każdym razem zrzuca mi się zawartość ustawień które ustawiłem za pomocą konstruktorów
connect
do obiektów QLineEdit
i QComboBox
zostały wykonane i działają i wyglądają tak:
QObject::connect(ComboBox, QOverload<int>::of(&QComboBox::currentIndexChanged), mwNetwork, &Network::setConnect);
QObject::connect(IPDatabase, &QLineEdit::textEdited, mwNetwork, &Network::setAddressIPv4);
slot wygląda tak - drugi jest nie podłączony
class Network : public QObject
{
Q_OBJECT
public slots:
void setAddressIPv4(const QString &_AddreesIPv4){
nIPv4 = _AddreesIPv4;
qDebug()<< "slot"<< nIPv4;
}
}
Natomiast struktura pliku JSON odbywa się tutaj i wygląda tak
class Settings : public QObject
{
Q_OBJECT
public slots:
void SaveSettings(/*QJsonObject &JsonObject*/){
QJsonObject myJsonObject, myJsonObjectSettings, JsonObjectNetwork, _JsonObjectNetwork, JsonObjectData, _JsonObjectData;
myNetworkSettings.WriteNetworkSettings(JsonObjectNetwork);
_JsonObjectNetwork["network"] = myNetworkSettings.ShowNetworkSettings();
for(QString &str : _JsonObjectNetwork.keys()){
myJsonObjectSettings.insert(str, JsonObjectNetwork);
}
myDataSettings.WriteDataSettings(JsonObjectData);
_JsonObjectData["data-from"] = myDataSettings.ShowDataSettings();
for(QString &str : _JsonObjectData.keys()){
myJsonObjectSettings.insert(str, JsonObjectData);
}
myJsonObject["settings"] = myJsonObjectSettings;
QJsonDocument JsonDocument;
JsonDocument.setObject(myJsonObject);
QFile SaveFileToJson;
SaveFileToJson.setFileName(QString("settings.json"));
if(!SaveFileToJson.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Truncate)){
qDebug()<< "Blad otwarcia pliku";
}
else{
SaveFileToJson.write(JsonDocument.toJson());
SaveFileToJson.flush();
}
}
w funkcji void SaveSettings(/*QJsonObject &JsonObject*/)
tymczasowo zakomentowałem argument funkcji, ponieważ slot clicked
jest niekompatybilny z taką funkcją. Podejrzewam, że robię coś źle w tej funkcji, tylko nie wiem co. W razie potrzeby publikuję cały kod, który przy okazji tego wątku może być przez was poddany analizie code review
- jest pewna niekonsekwencja w nazewnictwie zmiennych ale nadal pracuję nad swoim sposobem ich nazywania
kod projektu QStackedWidget.7z