/
SKQR01
/
ToDoQt
Обзор
Документация
Войти
/
SKQR01
/
ToDoQt
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
mainwindow.cpp
87 строк
2 KB
SKQR01
switch from list widget to listview
28 янв 2025, 15:37
28 янв 2025, 15:37
4108503
Код
Авторство
О чём код?
#include "mainwindow.h" #include "./ui_mainwindow.h" #include "todoitemdelegate.h" #include "todoitemwidget.h" #include "todomodel.h" #include <QFile> #include <QStandardPaths> #include <QMessageBox> #include <QTextStream> #include <QListView> #include <QAbstractListModel> #include <QObject> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { setupUi(); //restore data QFile file(savePath); if(!file.open(QIODevice::ReadWrite)) { QMessageBox::information(0,"Error", file.errorString()); } QTextStream in(&file); while (!in.atEnd()){ QString strVal = in.readLine(); tdModel->addTodo(strVal); } file.close(); } MainWindow::~MainWindow() { //save data QFile file(savePath); if(!file.open(QIODevice::ReadWrite)) { QMessageBox::information(0,"Error", file.errorString()); } //clear file file.resize(0); //write new data QTextStream out(&file); out << *tdModel->getTxtToSave(); file.close(); delete ui; } void MainWindow::on_removeBtn_clicked() { QModelIndex idx = ui->listView->currentIndex(); tdModel->removeRow(idx.row()); ui->listView->update(); } void MainWindow::on_removeAllBtn_clicked() { tdModel->removeAll(); ui->listView->update(); } void MainWindow::on_txtTask_returnPressed() { tdModel->addTodo(ui->txtTask->text()); ui->listView->update(); ui->txtTask->clear(); ui->txtTask->setFocus(); } void MainWindow::setupUi() { ui->setupUi(this); ui->listView->setModel(tdModel); //set behavior of items ui->listView->setItemDelegate(new TodoItemDelegate(ui->listView)); }