Skip to content

19. (П9) Відображення даних у таблицях: список нотаток у QTableView

Передумови

Мова в коді

Усі рядкові літерали, написи в меню й на кнопках, заголовки колонок, заголовок вікна, SQL-запити, імена файлів, модулів та змінних — лише латиницею. Своє ім'я, прізвище та групу пишіть у транслітерації: Ivan Petrenko, KI-31. Кирилиця допускається тільки в коментарях.

Завдання

Замінити список нотаток (QListWidget із практичних 7–8) на таблицю QTableView з власною моделлю над спільним AppState.

Обов'язкові вимоги до результату:

  • дані нотаток існують в одному екземплярі — у AppState; модель копії не робить;
  • усі зміни нотаток проходять через методи стану, модель лише перекладає виклики;
  • QListWidget, QTableWidget і QStandardItemModel у проєкті не використовуються;
  • номер рядка ніде не є ідентифікатором нотатки — тільки note.id;
  • зміна однієї нотатки не скидає модель, не втрачає виділення й позицію прокрутки;
  • усі відкриті головні вікна показують ті самі дані одночасно.

Персоналізація

Константи, як і раніше, живуть тільки в app/config.py. До наявних додаються три нові:

STUDENT_NAME = "Ivan Petrenko"                # ваше ім'я та прізвище транслітерацією
STUDENT_GROUP = "KI-31"                       # ваша група
DB_FILE = "workspace_ivan_petrenko.db"        # файл бази з практичних 3-5
APP_TITLE = "Notes Manager"                   # назва застосунку
TABLE_PREVIEW_LENGTH = 40                     # символів тіла нотатки в колонці Preview
LONG_NOTE_CHARS = 200                         # від якої довжини нотатка вважається довгою
EMPTY_TABLE_TEXT = "No notes to show"         # текст, коли таблиця порожня

Заголовки вікон і команди з практичної 8 лишаються без змін.


Знайшли помилку чи бажаєте додати інформацію, щоб покращити курс? Створіть issue на GitHub