Skip to content

10. (П5) Додавання меню та панелей інструментів: команди менеджера нотаток

Передумови

Мова в коді

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

Завдання

Створити файл notes_manager.py — менеджер нотаток із практичної 4, доповнений повноцінним набором команд.

Головна вимога: кожна команда — це один QAction, доданий у кілька контейнерів інтерфейсу, з одним обробником. Як влаштувати класи й методи всередині — вирішуєте ви.

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

STUDENT_NAME = "Ivan Petrenko"                # ваше ім'я та прізвище транслітерацією
STUDENT_GROUP = "KI-31"                       # ваша група
DB_FILE = "workspace_ivan_petrenko.db"        # файл бази з практичних 3-4

Заголовок вікна: Notes Manager - Ivan Petrenko, KI-31.

База даних

Та сама таблиця notes, але їй потрібен новий стовпець — pinned INTEGER NOT NULL DEFAULT 0 (ознака закріпленої нотатки).

Схема вікна

+----------------------------------------------------------------------+
|  QMainWindow                Notes Manager - Ivan Petrenko, KI-31      |
+----------------------------------------------------------------------+
|  Note      Edit      View      Help               <- menuBar()        |
+----------------------------------------------------------------------+
|  [New] [Save] [Delete] | [Pin] | [All][Pinned][Other] | [Export v]    |
|                                                   <- QToolBar         |
+----------------------------------------------------------------------+
|                         |                                            |
|  +-------------------+  |  +--------------------------------------+  |
|  |                   |  |  |                                      |  |
|  |  список нотаток   |  |  |       редактор тексту нотатки        |  |
|  |                   |  |  |          (centralWidget)             |  |
|  |  (у QDockWidget)  |  |  |                                      |  |
|  |                   |  |  |                                      |  |
|  +-------------------+  |  +--------------------------------------+  |
|                         |                                            |
+----------------------------------------------------------------------+
|  Ready                          [ Filter: All ]  [ Notes: 12 ]       |
|                                                   <- QStatusBar       |
+----------------------------------------------------------------------+

[Export v] — це QToolButton з випадаючим меню, а не звичайна кнопка.

Що має робити застосунок

Команди

Команда Клавіша Що робить
New note Ctrl+N знімає вибір у списку й очищає редактор — наступне збереження створить нову нотатку
Save note Ctrl+S зберігає текст редактора: у вибрану нотатку або як нову, якщо нічого не вибрано
Delete note Delete видаляє вибрану нотатку, спитавши підтвердження
Pin Ctrl+P перемикач: закріплює або відкріплює вибрану нотатку
Clear all notes видаляє всі нотатки, спитавши підтвердження
Export зберігає всі нотатки у файл — окремими пунктами меню у форматі TXT або CSV
Quit стандартна закриває застосунок
About вікно з назвою застосунку, вашим ім'ям і групою

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