ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 05.12.2023
Просмотров: 859
Скачиваний: 3
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
Глава 21. Основные компоненты
465
setSelection(<Индекс>, <Длина>)
— выделяет фрагмент длиной
<Длина>
, начиная с по- зиции
<Индекс>
. Во втором параметре можно указать отрицательное значение;
selectedText()
— возвращает выделенный фрагмент или пустую строку, если ничего не выделено;
selectAll()
— выделяет весь текст в поле. Метод является слотом;
selectionStart()
— возвращает начальный индекс выделенного фрагмента или значе- ние
-1
, если ничего не выделено;
hasSelectedText()
— возвращает значение
True
, если поле содержит выделенный фраг- мент, и
False
— в противном случае;
deselect()
— снимает выделение;
isModified()
— возвращает
True
, если текст в поле был изменен пользователем, и
False
— в противном случае. Отметьте, что вызов метода setText()
помечает поле как неизмененное;
1 ... 38 39 40 41 42 43 44 45 ... 83
setModified(<Флаг>)
— если передано значение
True
, поле ввода помечается как изме- ненное, если
False
— как неизмененное;
setEchoMode(<Режим>)
— задает режим отображения текста. Могут быть указаны сле- дующие атрибуты класса
QLineEdit
:
•
Normal
—
0
— показывать символы как они были введены;
•
NoEcho
—
1
— не показывать вводимые символы;
•
Password
—
2
— вместо символов выводить звездочки (
*
);
•
PasswordEchoOnEdit
—
3
— показывать символы при вводе, а после потери фокуса вместо них отображать звездочки (
*
);
setCompleter(
— позволяет предлагать возможные варианты значений, начинающиеся с введенных пользователем символов. В качестве параметра указывается экземпляр класса
QCompleter
: lineEdit = QtWidgets.QLineEdit() arr = ["кадр", "каменный", "камень", "камера"] completer = QtWidgets.QCompleter(arr, parent=window) lineEdit.setCompleter(completer)
setReadOnly(<Флаг>)
— если в качестве параметра указано значение
True
, поле будет доступно только для чтения;
isReadOnly()
— возвращает значение
True
, если поле доступно только для чтения, и
False
— в противном случае;
setAlignment(<Выравнивание>)
— задает выравнивание текста внутри поля;
setMaxLength(<Количество>)
— задает максимальное количество символов;
setFrame(<Флаг>)
— если в качестве параметра указано значение
False
, поле будет ото- бражаться без рамки;
setDragEnabled(<Флаг>)
— если в качестве параметра указано значение
True
, режим перетаскивания текста из текстового поля с помощью мыши будет включен. По умолча- нию однострочное текстовое поле только принимает перетаскиваемый текст;
setPlaceholderText(<Текст>)
— задает текст подсказки, который будет выводиться в поле, когда оно не содержит значения и не имеет фокуса ввода;
466
Часть II. Библиотека PyQt 5
setTextMargins()
— задает величины отступов от границ компонента до находящегося в нем текста. Форматы метода: setTextMargins(<Слева>, <Сверху>, <Справа>, <Снизу>) setTextMargins(
setCursorPosition(<Индекс>)
— задает положение текстового курсора;
cursorPosition()
— возвращает текущее положение текстового курсора;
cursorForward(<Флаг>[, steps=1])
— перемещает текстовый курсор вперед на указан- ное во втором параметре количество символов. Если в первом параметре указано значе- ние
True
, выполняется выделение фрагмента;
cursorBackward(<Флаг>[, steps=1])
— перемещает текстовый курсор назад на указан- ное во втором параметре количество символов. Если в первом параметре указано значе- ние
True
, выполняется выделение фрагмента;
cursorWordForward(<Флаг>)
— перемещает текстовый курсор вперед на одно слово. Если в параметре указано значение
True
, выполняется выделение фрагмента;
cursorWordBackward(<Флаг>)
— перемещает текстовый курсор назад на одно слово. Если в параметре указано значение
True
, выполняется выделение фрагмента;
home(<Флаг>)
— перемещает текстовый курсор в начало поля. Если в параметре указано значение
True
, выполняется выделение фрагмента;
end(<Флаг>)
— перемещает текстовый курсор в конец поля. Если в параметре указано значение
True
, выполняется выделение фрагмента;
cut()
— копирует выделенный текст в буфер обмена и удаляет его из поля при условии, что есть выделенный фрагмент и используется режим
Normal
. Метод является слотом;
copy()
— копирует выделенный текст в буфер обмена при условии, что есть выделен- ный фрагмент и используется режим
Normal
. Метод является слотом;
paste()
— вставляет текст из буфера обмена в текущую позицию текстового курсора при условии, что поле доступно для редактирования. Метод является слотом;
undo()
— отменяет последнюю операцию ввода пользователем при условии, что отмена возможна. Метод является слотом;
redo()
— повторяет последнюю отмененную операцию ввода пользователем, если это возможно. Метод является слотом;
isUndoAvailable()
— возвращает значение
True
, если можно отменить последнюю опе- рацию ввода, и
False
— в противном случае;
isRedoAvailable()
— возвращает значение
True
, если можно повторить последнюю от- мененную операцию ввода, и
False
— в противном случае;
createStandardContextMenu()
— создает стандартное меню, которое отображается при щелчке правой кнопкой мыши в текстовом поле. Чтобы изменить стандартное меню, следует создать класс, наследующий класс
QLineEdit
, и переопределить в нем метод contextMenuEvent(self,
. Внутри этого метода можно создать свое собственное меню или добавить новый пункт в стандартное меню;
setClearButtonEnabled(<Флаг>)
— если передано
True
, в левой части непустого поля будет выводиться кнопка, нажатием которой можно очистить это поле, если
False
, кнопка очистки выводиться не будет.
Глава 21. Основные компоненты
467
Класс
QLineEdit поддерживает следующие сигналы:
cursorPositionChanged(<Старая позиция>, <Новая позиция>)
— генерируется при пере- мещении текстового курсора. Внутри обработчика через первый параметр доступна ста- рая позиция курсора, а через второй параметр — новая позиция. Оба параметра являют- ся целочисленными;
editingFinished
— генерируется при нажатии клавиши
returnPressed
— генерируется при нажатии клавиши
selectionChanged
— генерируется при изменении выделения;
textChanged(<Новый текст>)
— генерируется при изменении текста внутри поля пользо- вателем или программно. Внутри обработчика через параметр доступен новый текст в виде строки;
textEdited(<Новый текст>)
— генерируется при изменении текста внутри поля пользо- вателем. При задании текста вызовом метода setText()
не генерируется. Внутри обра- ботчика через параметр доступен новый текст в виде строки.
21.5.2. Ввод данных по маске
С помощью метода setInputMask(<Маска>)
можно ограничить ввод символов допустимым диапазоном значений. В качестве параметра указывается строка, имеющая следующий формат:
"<Последовательность символов>[;<Символ-заполнитель>]"
В первом параметре указывается комбинация из следующих специальных символов:
9
— обязательна цифра от
0
до
9
;
0
— разрешена, но не обязательна цифра от
0
до
9
;
D
— обязательна цифра от
1
до
9
;
d
— разрешена, но не обязательна цифра от
1
до
9
;
B
— обязательна цифра
0
или
1
;
b
— разрешена, но не обязательна цифра
0
или
1
;
H
— обязателен шестнадцатеричный символ (
0-9
,
A-F
, a-f
);
h
— разрешен, но не обязателен шестнадцатеричный символ (
0-9
,
A-F
, a-f
);
#
— разрешена, но не обязательна цифра, знак плюс или минус;
A
— обязательна буква в любом регистре;
a
— разрешена, но не обязательна буква;
N
— обязательна буква в любом регистре или цифра от
0
до
9
;
n
— разрешена, но не обязательна буква или цифра от
0
до
9
;
X
— обязателен любой символ;
x
— разрешен, но не обязателен любой символ;
>
— все последующие буквы переводятся в верхний регистр;
<
— все последующие буквы переводятся в нижний регистр;
468
Часть II. Библиотека PyQt 5
!
— отключает изменение регистра;
\
— используется для отмены действия спецсимволов.
Все остальные символы трактуются как есть. В необязательном параметре
<Символ- заполнитель>
можно указать символ, который будет отображаться в поле, обозначая место ввода. Если параметр не указан, заполнителем будет служить пробел: lineEdit.setInputMask("Дата: 99.B9.9999;_") # Дата: __.__.____ lineEdit.setInputMask("Дата: 99.B9.9999;#") # Дата: ##.##.#### lineEdit.setInputMask("Дата: 99.B9.9999 г.") # Дата: . . г.
Проверить соответствие введенных данных маске позволяет метод hasAcceptableInput()
Если данные соответствуют маске, метод возвращает значение
True
, а в противном слу- чае —
False
21.5.3. Контроль ввода
Контролировать ввод данных позволяет метод setValidator(
. В качестве па- раметра указывается экземпляр класса, наследующего класс
QValidator из модуля
QtGui
Существуют следующие стандартные классы, позволяющие контролировать ввод данных:
QIntValidator
— допускает ввод только целых чисел. Функциональность класса зависит от настройки локали. Форматы конструктора:
QIntValidator([parent=None])
QIntValidator(<Минимальное значение>, <Максимальное значение>
[, parent=None])
Пример ограничения ввода диапазоном целых чисел от
0
до
100
: lineEdit.setValidator(QtGui.QIntValidator(0, 100, parent=window))
QDoubleValidator
— допускает ввод только вещественных чисел. Функциональность класса зависит от настройки локали. Форматы конструктора:
QDoubleValidator([parent=None])
QDoubleValidator(<Минимальное значение>, <Максимальное значение>,
<Количество цифр после точки>[, parent=None])
Пример ограничения ввода диапазоном вещественных чисел от
0.0
до
100.0
. и двумя цифрами после десятичной точки: lineEdit.setValidator(
QtGui.QDoubleValidator(0.0, 100.0, 2, parent=window))
Чтобы позволить вводить числа в экспоненциальной форме, необходимо передать зна- чение атрибута
ScientificNotation в метод setNotation()
. Если передать значение атрибута
StandardNotation
, будет разрешено вводить числа только в десятичной форме: validator = QtGui.QDoubleValidator(0.0, 100.0, 2, parent=window) validator.setNotation(QtGui.QDoubleValidator.StandardNotation) lineEdit.setValidator(validator)
QRegExpValidator
— позволяет проверить данные на соответствие регулярному выраже- нию. Форматы конструктора:
QRegExpValidator([parent=None])
QRegExpValidator(
Глава 21. Основные компоненты
469
Пример ввода только цифр от
0
до
9
: validator = QtGui.QRegExpValidator(
QtCore.QRegExp("[0-9]+"), parent=window) lineEdit.setValidator(validator)
Обратите внимание, что здесь производится проверка полного соответствия шаблону, поэтому символы
^
и
$
явным образом указывать не нужно.
Проверить соответствие введенных данных условию позволяет метод hasAcceptableInput()
Если данные соответствуют условию, метод возвращает значение
True
, а в противном слу- чае —
False
21.6. Многострочное текстовое поле
Многострочное текстовое поле предназначено для ввода и редактирования как простого текста, так и текста в формате HTML. Поле поддерживает технологию drag & drop, стан- дартные комбинации клавиш быстрого доступа, работу с буфером обмена и многое другое.
Многострочное текстовое поле реализуется с помощью класса
QTextEdit
. Иерархия насле- дования:
(QObject, QPaintDevice) — QWidget — QFrame —
QAbstractScrollArea — QTextEdit
Конструктор класса
QTextEdit имеет два формата вызова:
<Объект> = QTextEdit([parent=<Родитель>])
<Объект> = QTextEdit(<Текст>[, parent=<Родитель>])
В параметре parent указывается ссылка на родительский компонент. Если параметр не ука- зан или имеет значение
None
, компонент будет обладать своим собственным окном. Пара- метр
<Текст>
позволяет задать текст в формате HTML, который будет отображен в тексто- вом поле.
П
РИМЕЧАНИЕ
Класс QTextEdit предназначен для отображения как простого текста, так и текста в форма- те HTML. Если поддержка HTML не нужна, то следует воспользоваться классом
QPlainTextEdit
, который оптимизирован для работы с простым текстом большого объема.
21.6.1. Основные методы и сигналы
Класс
QTextEdit поддерживает следующие основные методы (полный их список смотрите на странице https://doc.qt.io/qt-5/qtextedit.html):
setText(<Текст>)
— помещает указанный текст в поле. Текст может быть простым или в формате HTML. Метод является слотом;
setPlainText(<Текст>)
— помещает в поле простой текст. Метод является слотом;
setHtml(<Текст>)
— помещает в поле текст в формате HTML. Метод является слотом;
insertPlainText(<Текст>)
— вставляет простой текст в текущую позицию текстового курсора. Если в поле был выделен фрагмент, он будет удален. Метод является слотом;
insertHtml(<Текст>)
— вставляет текст в формате HTML в текущую позицию текстово- го курсора. Если в поле был выделен фрагмент, он будет удален. Метод является слотом;
470
Часть II. Библиотека PyQt 5
append(<Текст>)
— добавляет новый абзац с указанным текстом в формате HTML в ко- нец поля. Метод является слотом;
setDocumentTitle(<Текст>)
— задает текст заголовка документа (для тега
);
documentTitle()
— возвращает текст заголовка (из тега
);
toPlainText()
— возвращает простой текст, содержащийся в текстовом поле;
toHtml()
— возвращает текст в формате HTML;
clear()
— удаляет весь текст из поля. Метод является слотом;
selectAll()
— выделяет весь текст в поле. Метод является слотом;
zoomIn([range=1])
— увеличивает размер шрифта. Метод является слотом;
zoomOut([range=1])
— уменьшает размер шрифта. Метод является слотом;
cut()
— копирует выделенный текст в буфер обмена и удаляет его из поля при условии, что есть выделенный фрагмент. Метод является слотом;
copy()
— копирует выделенный текст в буфер обмена при условии, что есть выделен- ный фрагмент. Метод является слотом;
paste()
— вставляет текст из буфера обмена в текущую позицию текстового курсора при условии, что поле доступно для редактирования. Метод является слотом;
canPaste()
— возвращает
True
, если из буфера обмена можно вставить текст, и
False
— в противном случае;
setAcceptRichText(<Флаг>)
— если в качестве параметра указано значение
True
, в поле можно будет ввести, вставить из буфера обмена или при помощи перетаскивания текст в формате HTML. Значение
False дает возможность заносить в поле лишь обычный текст;
acceptRichText()
— возвращает значение
True
, если в поле можно занести текст в фор- мате HTML, и
False
— если доступно занесение лишь обычного текста;
undo()
— отменяет последнюю операцию ввода пользователем при условии, что отмена возможна. Метод является слотом;
redo()
— повторяет последнюю отмененную операцию ввода пользователем, если это возможно. Метод является слотом;
setUndoRedoEnabled(<Флаг>)
— если в качестве значения указано значение
True
, опера- ции отмены и повтора действий разрешены, а если
False
— то запрещены;
isUndoRedoEnabled()
— возвращает значение
True
, если операции отмены и повтора действий разрешены, и
False
— если запрещены;
createStandardContextMenu([
— создает стандартное меню, которое отобра- жается при щелчке правой кнопкой мыши в текстовом поле. Чтобы изменить стандарт- ное меню, следует создать класс, наследующий класс
QTextEdit
, и переопределить в нем метод contextMenuEvent(self,
. Внутри этого метода можно создать свое соб- ственное меню или добавить новый пункт в стандартное меню;
ensureCursorVisible()
— прокручивает область таким образом, чтобы текстовый курсор оказался в зоне видимости;
find()
— производит поиск фрагмента (по умолчанию в прямом направлении без учета регистра символов) в текстовом поле. Если фрагмент найден, он выделяется, и метод возвращает значение
True
, в противном случае — значение
False
. Форматы метода:
Глава 21. Основные компоненты
471 find(<Искомый текст>[, <Режим>]) find(
Искомый текст можно указать либо строкой, либо регулярным выражением, представ- ленным экземпляром класса
QRegExp
. В необязательном параметре
<Режим>
можно указать комбинацию (через оператор
|
) следующих атрибутов класса
QTextDocument из модуля
QtGui
:
•
FindBackward
—
1
— поиск в обратном, а не в прямом направлении;
•
FindCaseSensitively
—
2
— поиск с учетом регистра символов;
•
FindWholeWords
—
4
— поиск целых слов, а не фрагментов;
print(
— отправляет содержимое текстового поля на печать.
В качестве параметра указывается экземпляр одного из классов, порожденных от
QPagedPaintDevice
:
QPrinter или
QPdfWriter
. Вот пример вывода документа в файл в формате PDF: pdf = QtGui.QPdfWriter("document.pdf") textEdit.print(pdf)
Класс
QTextEdit поддерживает следующие сигналы:
currentCharFormatChanged(
— генерируется при изменении формата текста. Внутри обработчика через параметр доступен новый формат;
cursorPositionChanged
— генерируется при изменении положения текстового курсора;
selectionChanged
— генерируется при изменении выделения текста;
textChanged
— генерируется при изменении текста в поле;
copyAvailable(<Флаг>)
— генерируется при выделении текста или, наоборот, снятии выделения. Значение параметра
True указывает, что фрагмент выделен, и его можно скопировать, значение
False
— обратное;
undoAvailable(<Флаг>)
— генерируется при изменении возможности отменить опера- цию ввода. Значение параметра
True указывает, что операция ввода может быть отмене- на, значение
False говорит об обратном;
redoAvailable(<Флаг>)
— генерируется при изменении возможности повторить отме- ненную операцию ввода. Значение параметра
True обозначает возможность повтора от- мененной операции, а значение
1 ... 39 40 41 42 43 44 45 46 ... 83
False
— невозможность сделать это.
21.6.2. Изменение параметров поля
Задать другие параметры поля можно вызовами следующих методов класса
QTextEdit
(пол- ный их список смотрите на странице https://doc.qt.io/qt-5/qtextedit.html):
setTextInteractionFlags(<Режим>)
— задает режим взаимодействия пользователя с тек- стом. Можно указать следующие атрибуты (или их комбинацию через оператор
|
) клас- са
QtCore.Qt
:
•
NoTextInteraction
—
0
— пользователь не может взаимодействовать с текстом;
•
TextSelectableByMouse
—
1
— текст можно выделить мышью;
•
TextSelectableByKeyboard
—
2
— текст можно выделить с помощью клавиатуры.
Внутри поля будет отображен текстовый курсор;
472
Часть II. Библиотека PyQt 5
•
LinksAccessibleByMouse
—
4
— на гиперссылках, присутствующих в тексте, можно щелкать мышью;
•
LinksAccessibleByKeyboard
—
8
— с гиперссылками, присутствующими в тексте, можно взаимодействовать с клавиатуры: перемещаться между гиперссылками — с помощью клавиши
•
TextEditable
—
16
— текст можно редактировать;
•
TextEditorInteraction
— комбинация
TextSelectableByMouse |
TextSelectableByKeyboard | TextEditable
;
•
TextBrowserInteraction
— комбинация
TextSelectableByMouse |
LinksAccessibleByMouse | LinksAccessibleByKeyboard
;
setReadOnly(<Флаг>)
— если в качестве параметра указано значение
True
, поле будет доступно только для чтения;
isReadOnly()
— возвращает значение
True
, если поле доступно только для чтения, и
False
— в противном случае;
setLineWrapMode(<Режим>)
— задает режим переноса строк. В качестве значения могут быть указаны следующие атрибуты класса
QTextEdit
:
•
NoWrap
—
0
— перенос строк не производится;
•
WidgetWidth
—
1
— перенос строк при достижении ими ширины поля;
•
FixedPixelWidth
—
2
— перенос строк при достижении ими фиксированной ширины в пикселах, которую можно задать с помощью метода setLineWrapColumnOrWidth()
;
•
FixedColumnWidth
—
3
— перенос строк при достижении ими фиксированной шири- ны в символах, которую можно задать с помощью метода setLineWrapColumnOrWidth()
;
setLineWrapColumnOrWidth(<Значение>)
— задает фиксированную ширину строк, при достижении которой будет выполняться перенос;
setWordWrapMode(<Режим>)
— задает режим переноса по словам. В качестве значения могут быть указаны следующие атрибуты класса
QTextOption из модуля
QtGui
:
•
NoWrap
—
0
— перенос по словам не производится;
•
WordWrap
—
1
— перенос строк только по словам;
•
ManualWrap
—
2
— аналогичен режиму
NoWrap
;
•
WrapAnywhere
—
3
— перенос строки может быть внутри слова;
•
WrapAtWordBoundaryOrAnywhere
—
4
— по возможности перенос по словам, но может быть выполнен и перенос внутри слова;
setOverwriteMode(<Флаг>)
— если в качестве параметра указано значение
True
, вводи- мый текст будет замещать ранее введенный. Значение
False отключает замещение;
overwriteMode()
— возвращает значение
True
, если вводимый текст замещает ранее вве- денный, и
False
— в противном случае;
setAutoFormatting(<Режим>)
— задает режим автоматического форматирования. В каче- стве значения могут быть указаны следующие атрибуты класса
QTextEdit
:
•
AutoNone
— автоматическое форматирование не используется;
•
AutoBulletList
— автоматическое создание маркированного списка при вводе поль- зователем в начале строки символа
*
;
Глава 21. Основные компоненты
473
•
AutoAll
— включить все режимы. На данный момент эквивалентно режиму
AutoBulletList
;
setCursorWidth(<Ширина>)
— задает ширину текстового курсора;
setTabChangesFocus(<Флаг>)
— если параметром передать значение
False
, то с помощью нажатия клавиши
True
, клавиша
setTabStopWidth(<Ширина>)
— задает ширину табуляции в пикселах;
tabStopWidth()
— возвращает ширину табуляции в пикселах.
21.6.3. Указание параметров текста и фона
Для изменения параметров текста и фона предназначены следующие методы класса
QTextEdit
(полный их список смотрите на странице https://doc.qt.io/qt-5/qtextedit.html):
setCurrentFont(
— задает текущий шрифт. Метод является слотом. В качестве параметра указывается экземпляр класса
QFont из модуля
QtGui
. Конструктор этого класса имеет следующий формат:
<Шрифт> = QFont(<Название шрифта>[, pointSize=-1][, weight=-1]
[, italic=False])
В первом параметре задается название шрифта в виде строки. Необязательный параметр pointSize устанавливает размер шрифта. В параметре weight можно указать степень жирности шрифта: число от
0
до
99
или значение атрибутов
Light
,
Normal
,
DemiBold
,
Bold или
Black класса
QFont
. Если в параметре italic указано значение
True
, шрифт будет курсивным;
currentFont()
— возвращает экземпляр класса
QFont с текущими характеристиками шрифта;
setFontFamily(<Название шрифта>)
— задает название текущего шрифта. Метод являет- ся слотом;
fontFamily()
— возвращает название текущего шрифта;
setFontPointSize(<Размер>)
— задает размер текущего шрифта. Метод является слотом;
fontPointSize()
— возвращает размер текущего шрифта;
setFontWeight(<Жирность>)
— задает жирность текущего шрифта. Метод является сло- том;
fontWeight()
— возвращает жирность текущего шрифта;
setFontItalic(<Флаг>)
— если в качестве параметра указано значение
True
, шрифт бу- дет курсивным. Метод является слотом;
fontItalic()
— возвращает
True
, если шрифт курсивный, и
False
— в противном слу- чае;
setFontUnderline(<Флаг>)
— если в качестве параметра указано значение
True
, текст будет подчеркнутым. Метод является слотом;
fontUnderline()
— возвращает
True
, если текст подчеркнутый, и
False
— в противном случае;
setTextColor(
— задает цвет текущего текста. В качестве значения можно ука- зать атрибут класса
QtCore.Qt
(например, black
, white и т. д.) или экземпляр класса
474
Часть II. Библиотека PyQt 5
QColor из модуля
QtGui
(например,
QColor("red")
,
QColor("#ff0000")
,
QColor(255, 0, 0)
и др.). Метод является слотом;
textColor()
— возвращает экземпляр класса
QColor с цветом текущего текста;
setTextBackgroundColor(
— задает цвет фона. В качестве значения можно ука- зать атрибут из класса
QtCore.Qt
(например, black
, white и т. д.) или экземпляр класса
QColor
(например,
QColor("red")
,
QColor("#ff0000")
,
QColor(255, 0, 0)
и др.). Метод является слотом;
textBackgroundColor()
— возвращает экземпляр класса
QColor с цветом фона;
setAlignment(<Выравнивание>)
— задает горизонтальное выравнивание текста внутри абзаца (допустимые значения мы рассматривали в разд. 20.2). Метод является слотом;
alignment()
— возвращает значение выравнивания текста внутри абзаца.
Задать формат символов можно также с помощью класса
QTextCharFormat
, который опреде- лен в модуле
QtGui и поддерживает дополнительные настройки. После создания экземпляра класса его следует передать в метод setCurrentCharFormat(
. Получить экземпляр класса с текущими настройками позволяет метод currentCharFormat()
. За под- робной информацией по классу
QTextCharFormat обращайтесь к странице https://doc.qt.io/ qt-5/qtextcharformat.html.
21.6.4. Класс QTextDocument
Класс
QTextDocument из модуля
QtGui представляет документ, который отображается в мно- гострочном текстовом поле. Получить ссылку на текущий документ позволяет метод document()
класса
QTextEdit
. Установить новый документ можно с помощью метода setDocument(
. Иерархия наследования:
QObject — QTextDocument
Конструктор класса
QTextDocument имеет два формата:
<Объект> = QTextDocument([parent=<Родитель>])
<Объект> = QTextDocument(<Текст>[, parent=<Родитель>])
В параметре parent указывается ссылка на родительский компонент. Параметр
<Текст>
по- зволяет задать простой текст (не в HTML-формате), который будет отображен в текстовом поле.
Класс
QTextDocument поддерживает следующий набор методов (полный их список смотрите на странице https://doc.qt.io/qt-5/qtextdocument.html):
setPlainText(<Текст>)
— помещает в документ простой текст;
setHtml(<Текст>)
— помещает в документ текст в формате HTML;
toPlainText()
— возвращает простой текст, содержащийся в документе;
toHtml([
— возвращает текст в формате HTML. В качестве параметра можно указать кодировку документа, которая будет выведена в теге
;
clear()
— удаляет весь текст из документа;
isEmpty()
— возвращает значение
True
, если документ пустой, и
False
— в противном случае;
setModified(<Флаг>)
— если передано значение
True
, документ помечается как изме- ненный, если
False
— как неизмененный. Метод является слотом;