Текстовый редактор на PyQt

Первая статься про pyqt - Как научиться писать на PyQt?
Вторая статья про pyqt - Создаем планировщик на PyQt
Весь код вы можете посмотреть на моем GitHub

В этой статье мы будем разбираться как работать с файлами, как их открывать, редактировать, сохранять, создавать. Сделаем поле ввода, поле для просмотра текста в файле, сделаем так, чтобы можно было сохранить, создать или открыть файл.

Текстовый редактор на PyQt Python, Qt, Приложение, Программирование, Длиннопост

Начнем по традиции с дизайна нашего приложения.

Перетащим Line Edit, Label и Plain Text Edit.

Текстовый редактор на PyQt Python, Qt, Приложение, Программирование, Длиннопост
Label - текст
Line Edit - строка, в которой можно писать текст ( мы её будем использовать для ввода файла )
Plain Text Edit -  поле для отображения и изменения текста ( мы в нем будем отображать текст файла )

Далее перетащим сетку grid и кнопки.

Текстовый редактор на PyQt Python, Qt, Приложение, Программирование, Длиннопост

Затем переместим кнопки в сетку ( это делается перетаскиванием кнопок в красный квадрат ).

После этих манипуляций у нас должно получиться что-то похожее на такое.

Текстовый редактор на PyQt Python, Qt, Приложение, Программирование, Длиннопост

Сейчас это выглядит как недоваренная колбаса, но сейчас мы все исправим.

Далее расположите элементы как это будет показано на картинке, найдите centralwidget и сделайте из него сетку.

Текстовый редактор на PyQt Python, Qt, Приложение, Программирование, Длиннопост

После нажатия у вас окно должно выглядеть примерно так.

Текстовый редактор на PyQt Python, Qt, Приложение, Программирование, Длиннопост

Чуть-чуть поиграемся со шрифтами ( я использую размер текста 11, а шрифт Segoe Script )

Текстовый редактор на PyQt Python, Qt, Приложение, Программирование, Длиннопост

Если растянуть окно, то будет увеличиваться только Plain Text Edit . Это выглядит не красиво.

Для того, чтобы это исправить найдите свойство sizePolicy и измените значение расположение по вертикале на Expanding

Текстовый редактор на PyQt Python, Qt, Приложение, Программирование, Длиннопост

Я порекомендую также изменить размер текста в Plain Text Edit и Line Edit.

Текстовый редактор на PyQt Python, Qt, Приложение, Программирование, Длиннопост

И наконец сделаем так, чтобы при вводе текста в Line Edit текст форматировался не по левому краю, а по центру. Выделите Line Edit и найдите свойство alignment, измените значение выравнивания по горизонтали на AlignHCenter.

Текстовый редактор на PyQt Python, Qt, Приложение, Программирование, Длиннопост

Сохраняем наш проект и переходим к написанию кода. Сначала переведем наш ui файл в python.

Текстовый редактор на PyQt Python, Qt, Приложение, Программирование, Длиннопост

Первым делом напишем код для открытие файла.

Текстовый редактор на PyQt Python, Qt, Приложение, Программирование, Длиннопост
with open(file) as f - дает нам переменную f - это и есть сам файл, мы можем читать файл, изменять его и т.д. В данном контексте мы его читаем при помощи метода read()

При помощи try и except мы ловим исключения.

Напишем функцию для сохранения файла.

Текстовый редактор на PyQt Python, Qt, Приложение, Программирование, Длиннопост
f.write() - заносим в файл текст, введенный в plainTextEdit

После этого создадим кнопку для создания файла.

Текстовый редактор на PyQt Python, Qt, Приложение, Программирование, Длиннопост

Теперь можете проверять работу приложения.

Весь написанный код можете посмотреть ЗДЕСЬ

Программирование на python

686 постов11.9K подписчиков

Правила сообщества

Публиковать могут пользователи с любым рейтингом. Однако!


Приветствуется:

• уважение к читателям и авторам

• конструктивность комментариев

• простота и информативность повествования

• тег python2 или python3, если актуально

• код публиковать в виде цитаты, либо ссылкой на специализированный сайт


Не рекомендуется:

• допускать оскорбления и провокации

• распространять вредоносное ПО

• просить решить вашу полноценную задачу за вас

• нарушать правила Пикабу