Загрузка...

Приложение Qt не работает должным образом

Тема в разделе C/C++ создана пользователем hl2_legend 6 дек 2023. (поднята 6 дек 2023) 87 просмотров

  1. hl2_legend
    hl2_legend Автор темы 6 дек 2023 0 15 янв 2021
    В общем, это должен был быть справочник, в который нужно записывать заметки в текстовое поле, а заметки привязаны к полю даты, также есть две кнопки: сохранить и удалить. Кнопка сохранить записывает текст даты в QSettings, но при следующем запуске программы ничего нет
    C
    #include "diary_by_painwizzard.h"

    #include <QApplication>

    int main(int argc, char *argv[])
    {
    QApplication a(argc, argv);
    Diary_by_PainWizzard w;
    w.show();
    return a.exec();
    }
    C
    #ifndef DIARY_BY_PAINWIZZARD_H
    #define DIARY_BY_PAINWIZZARD_H

    #include <QMainWindow>
    #include <QTextEdit>
    #include <QPushButton>
    #include <QDate>

    QT_BEGIN_NAMESPACE
    namespace Ui { class Diary_by_PainWizzard; }
    QT_END_NAMESPACE

    class Diary_by_PainWizzard : public QMainWindow
    {
    Q_OBJECT

    public:
    Diary_by_PainWizzard(QWidget *parent = nullptr);
    ~Diary_by_PainWizzard();
    void saveSettings();
    void loadSettings();
    private slots:
    void on_saveButton_pressed();
    void on_deleteButton_pressed();
    void on_date_changed(const QDate &date);
    private:
    Ui::Diary_by_PainWizzard *ui;
    QMap<QDate, QString> map;

    };
    #endif // DIARY_BY_PAINWIZZARD_H
    C
    #include "diary_by_painwizzard.h"
    #include "ui_diary_by_painwizzard.h"
    #include <QTextStream>
    #include <QInputDialog>
    #include <QSettings>
    #include <QApplication>


    Diary_by_PainWizzard::Diary_by_PainWizzard(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::Diary_by_PainWizzard)
    {
    ui->setupUi(this);

    loadSettings();



    connect(ui->save_button, SIGNAL(clicked()), this, SLOT(on_saveButton_pressed()));
    connect(ui->delete_button, SIGNAL(clicked()), this, SLOT(on_deleteButton_pressed()));
    connect(ui->dateEdit, SIGNAL(dateChanged(const QDate &)), this, SLOT(on_date_changed(const QDate &)));
    }



    Diary_by_PainWizzard::~Diary_by_PainWizzard()
    {
    delete ui;
    }

    void Diary_by_PainWizzard::saveSettings() {
    QSettings settings("Reminds.ini", QSettings::Format::IniFormat);
    settings.setValue("reminds", QVariant::fromValue(map));
    settings.sync();
    qDebug() << "Saved data:" << map;
    }

    void Diary_by_PainWizzard::loadSettings() {
    QSettings settings("Reminds.ini", QSettings::Format::IniFormat);
    map = settings.value("reminds").value<QMap<QDate, QString>>();
    qDebug() << "Loaded data:" << map;
    }


    void Diary_by_PainWizzard::on_saveButton_pressed() {
    QDate currentDate = ui->dateEdit->date();

    QString currentText = ui->textEdit->toPlainText();

    if(currentText.isEmpty()) return;

    map[currentDate] = currentText;
    saveSettings();
    }

    void Diary_by_PainWizzard::on_deleteButton_pressed() {
    QDate currentDate = ui->dateEdit->date();
    QString currentText = ui->textEdit->toPlainText();

    currentText = "";
    map[currentDate] = "";
    ui->textEdit->setPlainText(currentText);
    saveSettings();
    }

    void Diary_by_PainWizzard::on_date_changed(const QDate &date) {
    QString savedText = map.value(date);
    ui->textEdit->setPlainText(savedText);
    }
    Заранее спасибо за помощь!
     
Загрузка...
Top