Как сделать текстовый редактор на python
Перейти к содержимому

Как сделать текстовый редактор на python

  • автор:

Создание текстового редактора

Здравствуйте, не получается получить текст из QTextEdit. Если пользователь ввёл текст в текстовый редактор и сохранил его, то получается пустой файл.Помогите, пожалуйста, исправить эту ошибку.

Отслеживать
77k 6 6 золотых знаков 57 57 серебряных знаков 123 123 бронзовых знака
задан 1 июн 2018 в 13:14
43 4 4 бронзовых знака
полезное дело .. может быть когда не будь будем юзать редактор кода по имени Alice.
1 июн 2018 в 13:23

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Ошибка в том, что при сохранении автор создавал новый QTextEdit и брал его значение: textEdit=QTextEdit(self)

from PyQt5 import Qt import sys class Example(Qt.QMainWindow): def __init__(self): super().__init__() self.setWindowTitle('Hi') self.text_edit = Qt.QTextEdit() self.setCentralWidget(self.text_edit) menu = self.menuBar().addMenu('File') save_file_action = menu.addAction('Save As . ') save_file_action.triggered.connect(self.save_as) def save_as(self): file_name, ok = Qt.QFileDialog.getSaveFileName(self) if not ok: return with open(file_name, 'w', encoding='utf-8') as f: text = self.text_edit.toPlainText() f.write(text) if __name__ == '__main__': app = Qt.QApplication(sys.argv) example = Example() example.setGeometry(300, 300, 300, 300) example.show() app.exec() 

PS. У QMenu есть разные перегрузки метода addAction, например одна из них позволит передать: иконку, название, вызываемая функция и горячая клавиша (например, Ctrl + S ), но я решил что это будет излишне для примера.

PPS. У QFileDialog.getSaveFileName есть параметры для указания заголовка, папки по умолчанию, фильтров. Например, можно сразу задать название сохраняемого файла

PPPS. Рекомендую в питоне не использовать верблюжью нотацию в названии методов и переменных: textEdit -> text_edit

Урок #6 – Создание простого текстового редактора

Урок #6 – Создание простого текстового редактора

За урок мы детально вникнем в написание кода на основе библиотеки PyQt 5. Мы с нуля построим полноценную программу, что будет являться текстовым редактор с возможностью открытия, редактирования и сохранения файла.

Видеоурок

За урок мы разработали программу «Текстовый редактор». Программа обладает минимальным дизайном и набором из нескольких функций. Программу можно дорабатывать или же на её основе разработать свою собственную.

Принцип построения программ сводится к двум вещам: создание дизайна в Qt Designer и разработка функционала через PyQt. Если программа является слишком простой, то весь процесс можно прописать самостоятельно без Qt Designer.

Программа обучения

Также хотим отметить, что если вас интересует углубленное изучение языка Питон и его фреймворков, то предлагаем вашему внимаю наш полный курс по изучению языка питон и сопутствующих технологий.

В ходе огромной программы обучения вы изучите более сложные концепции языка Питон, научитесь на его основе строить полноценные программы под Андроид, изучите процесс построения веб сайтов и, конечно же, немного дополнительно изучите работу с искусственным интеллектом. За курс вы научитесь создавать сайты разных жанров, делать приложения, создавать крутые консольные проекты и к концу обучения у вас будет достаточный багаж знаний чтобы начать создавать свои собственные проекты разных жанров.

Весь код будет доступен после подписки на проект!

Большое задание по курсу

Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца

Код для редактирования текст на Python

Расширенный редактор текст для Python. Используйте его для программного изменения текст документов.

Программнная библиотека для редактирования текст на Python. Используйте наш API редактирования текст для разработки кроссплатформенного ПО на Python.

Посмотреть фрагмент кода

Редактировать текст в текст на Python

Программная модификация текст документов — неотъемлемая часть современного электронного документооборота. Редактируйте текст в текст, вставляйте графики с интеграцией внешних данных, изменяйте таблицы.

Библиотека Python — это комплексное решение для редактирования текст, не зависящее от стороннего ПО. Наш продукт готов к коммерческому использованию и покрывает все потребности профессиональных Python разработчиков:

  • Редактируйте существующие элементы текст: таблицы, списки, диаграммы, изображения, ссылки, поля и т.д.
  • Редактируйте стили текст и атрибуты форматирования.
  • Добавляйте новые элементы в текст
  • Находите текстовые паттерны в текст и замените их новым текстом.
  • Сохраните результат в различных форматах файлов, используя метод ‘Document.Save’.
  • Удаляйте ненужные элементы текст (абзацы, страницы, разделы, главы)

Редактировать текст на Python

Python редактор текст предоставляет разработчикам мощный API для программного редактирования текст. Быстро интегрируйте функции модификации текст в свое ПО. Наша библиотека поддерживает модификацию различных форматов документов на языке Python.

Задача программного редактирования текст на Python — это задача изменения элементов в дереве текст документа. Оно также известно как ‘DOM’ — модель программирования для взаимодействия с элементами текст документа и его свойствами.

Редактировать текст на Python

Функции модификации текст неотделимы от функций расширенного поиска в текст документе. Для обеспечения высокого уровня гибкости наша Python библиотека предоставляет разработчикам функцию поиска в текст на основе регулярных выражений. Такой подход расширяет возможности редактирования текста в текст файлах, позволяя использовать Regex-паттерны для динамического преобразования текст.

Редактировать таблицу в текст на Python

Одной из наиболее востребованных функций является динамическое создание и изменение таблиц в текст документах. Работать с таблицами очень удобно с Python библиотекой: редактируйте, обновляйте таблицы, извлекайте текст таблиц на Python.

В следующем примере показано, как модифицировать текст документ на Python:

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

Author24 — интернет-сервис помощи студентам

Текстовый редактор и своя таблица кодировки
Всем привет! Пытаюсь разобраться как можно реализовать текстовый редактор который будет работать с.

Текстовый редактор
Мне необходимо сделать из одного текста, другой, используя самые примитивные методы. Например.

Текстовый редактор
Я написал свой текстовый редактор. Нужно, чтобы при двойном клике на txt файл в Windows открывался.

PyQT текстовый редактор с вкладками
Нужно создать текстовый редактор с возможностью открытия файлов в новых вкладках, как в Notepd++.

2740 / 2339 / 620
Регистрация: 19.03.2012
Сообщений: 8,830

aekuznecov, Да уж, не знаю где ты нашёл этот код, но там ошибок вагон.

Добавлено через 35 минут
Вот так будет чуть-чуть по лучше, но по хорошему нужно с использованием классов переписывать, чтобы убирать global.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
import tkinter from tkinter.filedialog import asksaveasfile, askopenfile from tkinter.messagebox import showerror FILE_NAME = tkinter.NONE def new_file(): global FILE_NAME FILE_NAME = "Untitled" text.delete('1.0', tkinter.END) def save_file(): data = text.get('1.0', tkinter.END) out = open(FILE_NAME, 'w') out.write(data) out.close() def save_as(): out = asksaveasfile(mode='w', defaultextension='.txt') data = text.get('1.0', tkinter.END) try: out.write(data.rstrip()) except Exception: showerror(title="Oops!", message="Unable to save file. ") def open_file(): global FILE_NAME inp = askopenfile(mode="r") if inp is None: return FILE_NAME = inp.name data = inp.read() text.delete('1.0', tkinter.END) text.insert('1.0', data) root = tkinter.Tk() root.title("JPad v0.1b") root.minsize(width=400, height=400) root.maxsize(width=400, height=400) text = tkinter.Text(root, width=400, height=400) text.pack() menuBar = tkinter.Menu(root) fileMenu = tkinter.Menu(menuBar) fileMenu.add_command(label="New", command=new_file) fileMenu.add_command(label="Open", command=open_file) fileMenu.add_command(label="Save", command=save_file) fileMenu.add_command(label="Save As", command=save_as) fileMenu.add_separator() fileMenu.add_command(label="Exit", command=root.quit) menuBar.add_cascade(label="File", menu=fileMenu) root.config(menu=menuBar) root.mainloop()

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *