Ich möchte QSettings
verwenden, um meine Fenster Dimensionen zu speichern, so dass ich mit diesen beiden Funktionen kam & Last die Einstellungen zu speichern:Warum speichert QSettings nichts?
void MainWindow::loadSettings()
{
settings = new QSettings("Nothing","KTerminal");
int MainWidth = settings->value("MainWidth").toInt();
int MainHeight = settings->value("MainHeight").toInt();
std::cout << "loadSettings " << MainWidth << "x" << MainHeight << std::endl;
std::cout << "file: " << settings->fileName().toLatin1().data() << std::endl;
if (MainWidth && MainHeight)
this->resize(MainWidth,MainHeight);
else
this->resize(1300, 840);
}
void MainWindow::saveSettings()
{
int MainHeight = this->size().height();
int MainWidth = this->size().width();
std::cout << "file: " << settings->fileName().toLatin1().data() << std::endl;
std::cout << "saveSettings " << MainWidth << "x" << MainHeight << std::endl;
settings->setValue("MainHeight",MainHeight);
settings->setValue("MainWidth",MainWidth);
}
Jetzt kann ich die demensions in saveSettings
extrahiert werden sehen, wie erwartet, aber keine Datei wird erstellt und daher wird loadSettings
immer nur 0 laden. Warum ist das?
Perfekt & Beautiful! Vielen Dank! – cerr
Ich denke, dass der Grund für 'QSettings' nicht funktioniert, wenn er auf dem Heap zugewiesen wird, weil er nicht zerstört wird (es sei denn,' delete' wird aufgerufen). Und der Destruktor von 'QSettings' wird benötigt, um seine [' sync() '] (https://doc.qt.io/qt-5/qsettings.html#sync) Funktion aufzurufen. – Mike
Ausgezeichneter Punkt. Die Synchronisierungsfunktion kann manuell aufgerufen werden, um sie auf dem Heap zu verwenden. – phyatt