Skip to content

12. (П6) Реалізація діалогів відкриття файлів і підтвердження дій

Передумови

Мова в коді

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

Завдання

Створити файл text_editor.py — простий текстовий редактор на QMainWindow з одним полем QTextEdit. База даних тут не потрібна: працюємо зі звичайними *.txt файлами.

Мета роботи — не редактор, а діалоги навколо нього: жодна дія, яка може знищити набраний текст, не виконується без питання користувачеві.

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

STUDENT_NAME = "Ivan Petrenko"      # ваше ім'я та прізвище транслітерацією
STUDENT_GROUP = "KI-31"             # ваша група

Заголовок вікна: Text Editor - Ivan Petrenko, KI-31. Якщо файл відкритий — його ім'я на початку: notes.txt - Text Editor - Ivan Petrenko, KI-31. Якщо є незбережені зміни — зірочка одразу після імені файлу: notes.txt* - Text Editor - ....

Схема вікна

+----------------------------------------------------------------+
|  QMainWindow          notes.txt* - Text Editor - Ivan Petrenko  |
+----------------------------------------------------------------+
|  File      Help                              <- menuBar()       |
+----------------------------------------------------------------+
|                                                                |
|  +----------------------------------------------------------+  |
|  |                                                          |  |
|  |                       editor                             |  |
|  |                   (QTextEdit, centralWidget)             |  |
|  |                                                          |  |
|  +----------------------------------------------------------+  |
|                                                                |
+----------------------------------------------------------------+
|  Ready                              [ Chars: 128 ]             |
|                                              <- statusBar()    |
+----------------------------------------------------------------+

Chars: 128 — постійний віджет рядка стану (addPermanentWidget), який оновлюється при кожній зміні тексту.

Команди меню

Команда Клавіша Що робить
New Ctrl+N очищає редактор і забуває поточний файл
Open... Ctrl+O вибирає файл через QFileDialog і завантажує його вміст
Save Ctrl+S записує текст у поточний файл; якщо файлу ще немає — поводиться як Save As...
Save As... Ctrl+Shift+S питає нове ім'я файлу й записує текст туди
Quit Ctrl+Q закриває застосунок
About QMessageBox.about() з назвою застосунку, вашим ім'ям і групою

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