10. (П5) Додавання меню та панелей інструментів: команди менеджера нотаток¶
Передумови¶
- Прочитана Лекція 9 — Меню, панелі інструментів і дії (QAction, QMenuBar, QToolBar, QStatusBar)
- Успішно запущені приклади
ActionGroupDemo,ContextMenuDemo,ToolButtonDemo,StatusBarDemoтаTaskBoardз лекції - Виконана Практична 4 — каркас десктоп-застосунку: база SQLite і каркас вікна беруться звідти
Мова в коді
Усі рядкові літерали, написи в меню й на кнопках, заголовок вікна, 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