QSettings не задает переменную

Необходимо сохранить данные переменной int(далее в коде называется pin1), окно,в котором происходят все действия - не mainwidget. Почему-то при записи переменной, при повторном открытии так же равна 0. Никак не могу разобраться в проблемме

часть кода с qsettings(learn.cpp)

#include "learn.h"
#include "ui_learn.h"
#include <QMessageBox>



learn::learn(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::learn)
{
    ui->setupUi(this);
    app_sett = new QSettings(this);
    loadSettings();
    reset_pin();
    if (ui -> buttons -> currentIndex() == 0)
    {
        ui -> pins ->setEnabled(false);
        ui -> back_to_main -> setEnabled(false);
    }

}

learn::~learn()
{
    saveSettings();
    delete ui;

}

void learn::saveSettings()
{
    app_sett->setValue("pins", pin1);
}

void learn::loadSettings()
{
    pin1 = app_sett -> value("pins", 0).toInt();

}
void learn::reset_pin()
{
    ui -> label_2 -> setText("Тема " + (QString::number(pin1)));
    if(pin1 ==0)
    {
        ui -> label_2 -> setText(" ");

    }
}

learn.h(тоже немного очищено, тк объявлено много других функций)

#ifndef LEARN_H
#define LEARN_H

#include <QWidget>
#include "settings.h"
#include <QSettings>




namespace Ui {
class learn;
}

class learn : public QWidget
{
    Q_OBJECT

public:
    explicit learn(QWidget *parent = nullptr);
    ~learn();
    int pin1;

private slots:

    void reset_pin();
    void saveSettings();
    void loadSettings();

private:
    Ui::learn *ui;
    QSettings* app_sett;
};

#endif // LEARN_H

Также добавляю main.cpp

#include "mainwindow.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QApplication:: setOrganizationName("Example_for_app");
    QApplication:: setApplicationName("Application");
    MainWindow w;
    w.show();
    return a.exec();
}

Ответы (1 шт):

Автор решения: maestro

Из комментариев стало ясно, что у вас имеется много проблем, и не все они относятся конкретно к этому коду. Скорее всего, у вас есть также проблема с установкой Qt. Нужно уметь отделять проблемы друг от друга, чтобы решать кажду из них независимо, и для этого хорошо помогает написание минимального воспроизводимого примера. Начните сначала и напишите минимальную программу, которая читает и записывает параметры в файл настроек. Пусть она занимается только этим и ничем другим. Так вам легче будет найти причину того, что у вас не сохраняются настройки. Например, вот этот пример у меня работает прекрасно:

#include <QSettings>

int main(int argc, char *argv[])
{
    QSettings app_sett("settings.ini", QSettings::IniFormat);
    app_sett.setValue("pins", 1);
    int pins = app_sett.value("pins").toInt();
    qDebug() << "Pins: " << pins;
    pins += 10;
    app_sett.setValue("pins", pins);
    qDebug() << "New pins: " << app_sett.value("pins").toInt();
    return 0;
}

Посмотрите, работает ли он у вас. Если нет, будем разбираться дальше. Если да, то напишите другой пример более высокого уровня и задайте новый вопрос, в котором подробно изложите ваши действия и описание проблемы.

→ Ссылка