Шаг 109.
Библиотека PyQt5. Основные компоненты. Многострочное текстовое поле. Основные методы и сигналы
На этом шаге мы перечислим основные методы и сигналы многострочного текстового поля.
Класс QTextEdit поддерживает следующие основные методы (полный их список приведен на странице https://doc.qt.io/qt-5/qtextedit.html):
- setText (<Текст>) - помещает указанный текст в поле. Текст может быть простым или в формате HTML. Метод является слотом;
- setPlainText (<Текст>) - помещает в поле простой текст. Метод является слотом;
- setHtml (<Текст>) - помещает в поле текст в формате HTML. Метод является слотом;
- insertPlainText (<Текст>) - вставляет простой текст в текущую позицию текстового курсора. Если в поле был выделен фрагмент, он будет удален. Метод является слотом;
- insertHtml (<Текст>) - вставляет текст в формате HTML в текущую позицию текстового курсора. Если в поле был выделен фрагмент, он будет удален. Метод является слотом;
- append (<Текст>) - добавляет новый абзац с указанным текстом в формате HTML в конец поля. Метод является слотом;
- setDocumentTitle (<Текст>) - задает текст заголовка документа (для тега <title>);
- documentTitle () - возвращает текст заголовка (из тега <title>);
- toPlainText () - возвращает простой текст, содержащийся в текстовом поле;
- toHtml () - возвращает текст в формате HTML;
- clear () - удаляет весь текст из поля. Метод является слотом;
- selectAll () - выделяет весь текст в поле. Метод является слотом;
- zoomIn ([range=1]) - увеличивает размер шрифта. Метод является слотом;
- zoomOut ([range=1]) - уменьшает размер шрифта. Метод является слотом;
- cut () - копирует выделенный текст в буфер обмена и удаляет его из поля при условии, что есть выделенный фрагмент. Метод является слотом;
- сору () - копирует выделенный текст в буфер обмена при условии, что есть выделенный фрагмент. Метод является слотом;
- paste () - вставляет текст из буфера обмена в текущую позицию текстового курсора при условии, что поле доступно для редактирования. Метод является слотом;
- canPaste () - возвращает True, если из буфера обмена можно вставить текст, и False - в противном случае;
- setAcceptRichText (<Флаг>) - если в качестве параметра указано значение True,
в поле можно будет ввести, вставить из буфера обмена или при помощи перетаскивания текст в формате HTML. Значение False
дает возможность заносить в поле лишь обычный текст;
- acceptRichText () - возвращает значение True, если в поле можно занести текст в формате HTML, и False - если доступно занесение лишь обычного текста;
- undo () - отменяет последнюю операцию ввода пользователем при условии, что отмена возможна. Метод является слотом;
- redo () - повторяет последнюю отмененную операцию ввода пользователем, если это возможно. Метод является слотом;
- setUndoRedoEnabled (<Флаг>) - если в качестве значения указано значение True, операции отмены и повтора действий разрешены, а если False - то запрещены;
- isUndoRedoEnabled () - возвращает значение True, если операции отмены и повтора действий разрешены, и False - если запрещены;
- createStandardContextMenu ([<QPoint>]) - создает стандартное меню, которое отображается при щелчке правой кнопкой мыши в текстовом поле. Чтобы изменить
стандартное меню, следует создать класс, наследующий класс QTextEdit, и переопределить в нем метод contextMenuEvent(self, <event>). Внутри этого метода можно создать свое
собственное меню или добавить новый пункт в стандартное меню;
- ensureCursorVisible () - прокручивает область таким образом, чтобы текстовый курсор оказался в зоне видимости;
- find () - производит поиск фрагмента (по умолчанию в прямом направлений без учета регистра символов) в текстовом поле. Если фрагмент
найден, то он выделяется, и метод возвращает значение True, в противном случае - значение False. Форматы метода:
find (<Искомый текст>[, <Режим>])
find (<QRegExp>[, <Режим>])
Искомый текст можно указать либо строкой, либо регулярным выражением, представленным экземпляром класса QRegExp. В необязательном параметре
<Режим> можно указать комбинацию (через оператор |) следующих атрибутов класса QTextDocument из модуля QtGui:
- FindBackward (или 1) - поиск в обратном, а не в прямом направлении;
- FindCaseSensitively (или 2) - поиск с учетом регистра символов;
- FindWholeWords (или 4) - поиск целых слов, а не фрагментов;
- print (<QPagedPaintDevice>) - отправляет содержимое текстового поля на печать. В качестве параметра указывается экземпляр одного из классов,
порожденных от QPagedPaintDevice: QPrinter или QPdfWriter. Пример вывода документа в файл в формате PDF:
pdf = QtGui.QPdfWriter("document.pdf")
textEdit.print(pdf)
Класс QTextEdit поддерживает следующие сигналы:
- currentCharFormatChanged(<QTextCharFormat>) - генерируется при изменении формата текста. Внутри обработчика через параметр доступен новый формат;
- cursorPositionChanged - генерируется при изменении положения текстового курсора;
- selectionChanged - генерируется при изменении выделения текста;
- textChanged - генерируется при изменении текста в поле;
- соруAvailable (<Флаг>) - генерируется при выделении текста или, наоборот, снятии выделения. Значение параметра True указывает,
что фрагмент выделен, и его можно скопировать, значение False - обратное;
- undoAvailable (<Флаг>) - генерируется при изменении возможности отменить операцию ввода. Значение параметра True указывает,
что операция ввода может быть отменена, значение False говорит об обратном;
- redoAvailable (<Флаг>) - генерируется при изменении возможности повторить отмененную операцию ввода. Значение параметра True
обозначает возможность повтора отмененной операции, а значение False - невозможность сделать это.
На следующем шаге мы рассмотрим изменение параметров поля.
Предыдущий шаг
Содержание
Следующий шаг