#python #pyqt #pyqt5
Вопрос:
Я хочу создать свой собственный очень простой редактор файлов .txt. Как и в реальных редакторах, я хочу, чтобы, если вы измените файл и еще не сохраните его, имя файла начиналось с » * » (например, *some_text_file.txt).
Я думаю, что для этого я должен проверить QPlainTextEdit после загрузки файла в редактор и после того, как пользователь нажал кнопку «Сохранить». Но я не знаю, как проверить QPlainTextEdit без контроля пользователя, но после некоторых изменений. Или, может быть, есть другой способ сделать это. Итак, как это сделать?
Комментарии:
1. Под «именем файла» вы подразумеваете заголовок окна?
Ответ №1:
Вы могли бы использовать textChanged
сигнал от QPlainTextEdit
. Он указывает, когда изменился введенный текст. Видеть:
https://doc.qt.io/qt-5/qplaintextedit.html#textChanged
Грубо говоря, вы бы сделали следующее:
- загрузите файл
- отобразить имя файла без звездочки
- подключите
textChanged
сигнал в слот (функцию), который добавит звездочку к имени файла - при нажатии кнопки Сохранить удалите звездочку
Если вы новичок в Qt, возможно, вам захочется прочитать о механизме сигналов и слотов Qt:
Комментарии:
1. Обратите внимание, что
textChanged
он запускается при каждом изменении текста и не учитывает измененное состояние документа, что может быть важно для операций отмены/повтора: ввод символа и его удаление-это не то же самое, что ввод символа и запускundo()
команды.