Главная страница

ээдд. Прохоренок_Н_А__Дронов_В_А_Python_3_и_PyQt_5_Разработка_приложен. Николай Прохоренок Владимир Дронов


Скачать 7.92 Mb.
НазваниеНиколай Прохоренок Владимир Дронов
Дата05.05.2023
Размер7.92 Mb.
Формат файлаpdf
Имя файлаПрохоренок_Н_А__Дронов_В_А_Python_3_и_PyQt_5_Разработка_приложен.pdf
ТипДокументы
#1111379
страница44 из 83
1   ...   40   41   42   43   44   45   46   47   ...   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
— как неизмененный. Метод является слотом;

Глава 21. Основные компоненты
475
 isModified()
— возвращает значение
True
, если документ был изменен, и
False
— в противном случае;
 undo()
— отменяет последнюю операцию ввода пользователем при условии, что отмена возможна. Метод является слотом;
 redo()
— повторяет последнюю отмененную операцию ввода пользователем, если это возможно. Метод является слотом;
 isUndoAvailable()
— возвращает значение
True
, если можно отменить последнюю опе- рацию ввода, и
False
— в противном случае;
 isRedoAvailable()
— возвращает значение
True
, если можно повторить последнюю отмененную операцию ввода, и
False
— в противном случае;
 setUndoRedoEnabled(<Флаг>)
— если в качестве параметра указано значение
True
, то операции отмены и повтора действий разрешены, а если
False
— то запрещены;
 isUndoRedoEnabled()
— возвращает значение
True
, если операции отмены и повтора действий разрешены, и
False
— если запрещены;
 availableUndoSteps()
— возвращает количество возможных операций отмены;
 availableRedoSteps()
— возвращает количество возможных повторов отмененных опе- раций;
 clearUndoRedoStacks([stacks=UndoAndRedoStacks])
— очищает список возможных от- мен и/или повторов. В качестве параметра можно указать следующие атрибуты класса
QTextDocument
:

UndoStack
— только список возможных отмен;

RedoStack
— только список возможных повторов;

UndoAndRedoStacks
— очищаются оба списка;
 print()
— отправляет содержимое документа на печать. В качестве параметра указывается экземпляр одного из классов, порожденных от
QPagedPaintDevice
:
QPrinter или
QPdfWriter
;
 find()
— производит поиск фрагмента в документе. Метод возвращает экземпляр класса
QTextCursor из модуля
QtGui
. Если фрагмент не найден, то возвращенный экземпляр объекта будет нулевым. Проверить успешность операции можно с помощью метода isNull()
класса
QTextCursor
. Форматы метода: find(<Текст>[, position=0][, options=0]) find([, position=0][, options=0]) find(<Текст>, [, options=0]) find(, [, options=0])
Параметр
<Текст>
задает искомый фрагмент, а параметр

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

. Поиск по регулярному выражению по умол- чанию производится с учетом регистра символов. Чтобы поиск производился без учета регистра, необходимо передать атрибут
QtCore.Qt.CaseInsensitive в метод setCaseSensitivity()
регулярного выражения. В необязательном параметре options можно указать комбинацию (через оператор
|
) следующих атрибутов класса
QTextDocument
:

476
Часть II. Библиотека PyQt 5

FindBackward

1
поиск в обратном, а не в прямом направлении;

FindCaseSensitively

2
— поиск с учетом регистра символов. При использовании регулярного выражения значение игнорируется;

FindWholeWords

4
— поиск целых слов, а не фрагментов;
 setDefaultFont()
— задает шрифт по умолчанию для документа. В качестве параметра указывается экземпляр класса
QFont из модуля
QtGui
. Конструктор класса
QFont имеет следующий формат:
<Шрифт> = QFont(<Название шрифта>[, pointSize=-1][, weight=-1]
[, italic=False])
В первом параметре указывается название шрифта в виде строки. Необязательный пара- метр pointSize задает размер шрифта. В параметре weight можно выставить степень жирности шрифта: число от
0
до
99
или значение атрибутов
Light
,
Normal
,
DemiBold
,
Bold или
Black класса
QFont
. Если в параметре italic указано значение
True
, шрифт будет курсивным;
 setDefaultStyleSheet()
— устанавливает для документа таблицу стилей CSS по умолчанию;
 setDocumentMargin(<Отступ>)
— задает отступ от краев поля до текста;
 documentMargin()
— возвращает величину отступа от краев поля до текста;
 setMaximumBlockCount(<Количество>)
— задает максимальное количество текстовых блоков в документе. Если количество блоков становится больше указанного значения, первый блок будет удален;
 maximumBlockCount()
— возвращает максимальное количество текстовых блоков;
 characterCount()
— возвращает количество символов в документе;
 lineCount()
— возвращает количество абзацев в документе;
 blockCount()
— возвращает количество текстовых блоков в документе;
 firstBlock()
— возвращает экземпляр класса
QTextBlock
, объявленного в модуле
QtGui
, который содержит первый текстовый блок документа;
 lastBlock()
— возвращает экземпляр класса
QTextBlock
, который содержит последний текстовый блок документа;
 findBlock(<Индекс символа>)
— возвращает экземпляр класса
QTextBlock
, который содержит текстовый блок документа, включающий символ с указанным индексом;
 findBlockByLineNumber(<Индекс абзаца>)
— возвращает экземпляр класса
QTextBlock
, который содержит текстовый блок документа, включающий абзац с указанным индек- сом;
 findBlockByNumber(<Индекс блока>)
— возвращает экземпляр класса
QTextBlock
, кото- рый содержит текстовый блок документа с указанным индексом.
Класс
QTextDocument поддерживает сигналы:
 undoAvailable(<Флаг>)
— генерируется при изменении возможности отменить опера- цию ввода. Значение параметра
True обозначает наличие возможности отменить опера- цию ввода, а
False
— отсутствие такой возможности;
 redoAvailable(<Флаг>)
— генерируется при изменении возможности повторить отме- ненную операцию ввода. Значение параметра
True обозначает наличие возможности по- вторить отмененную операцию ввода, а
False
— отсутствие такой возможности;

Глава 21. Основные компоненты
477
 undoCommandAdded
— генерируется при добавлении операции ввода в список возможных отмен;
 blockCountChanged(<Новое количество блоков>)
— генерируется при изменении количе- ства текстовых блоков. Внутри обработчика через параметр доступно новое количество текстовых блоков, заданное целым числом;
 cursorPositionChanged()
— генерируется при изменении позиции тексто- вого курсора из-за операции редактирования. При простом перемещении текстового курсора сигнал не генерируется;
 contentsChange(<Позиция курсора>, <Количество добавленных символов>, <Количество удаленных символов>)
— генерируется при изменении текста. Все три параметра цело- численные;
 contentsChanged
— генерируется при любом изменении документа;
 modificationChanged(<Флаг>)
— генерируется при изменении состояния документа: из неизмененного в измененное или наоборот. Значение параметра
True обозначает, что документ помечен как измененный, значение
False
— что он теперь неизмененный.
21.6.5. Класс QTextCursor
Класс
QTextCursor из модуля
QtGui предоставляет инструмент для доступа к документу, представленному экземпляром класса
QTextDocument
, и для его правки, — иными словами, текстовый курсор. Конструктор класса
QTextCursor поддерживает следующие форматы:
<Объект> = QTextCursor()
<Объект> = QTextCursor()
<Объект> = QTextCursor()
<Объект> = QTextCursor()
<Объект> = QTextCursor()
Создать текстовый курсор, установить его в документе и управлять им позволяют следую- щие методы класса
QTextEdit
:
 textCursor()
— возвращает видимый в данный момент текстовый курсор (экземпляр класса
QTextCursor
). Чтобы изменения затронули текущий документ, необходимо пере- дать этот объект в метод setTextCursor()
;
 setTextCursor()
— устанавливает текстовый курсор, ссылка на который указана в качестве параметра;
 cursorForPosition()
— возвращает текстовый курсор, который соответствует позиции, указанной в качестве параметра. Позиция задается с помощью экземпляра класса
QPoint в координатах области;
 moveCursor(<Позиция>[, mode=MoveAnchor])
1   ...   40   41   42   43   44   45   46   47   ...   83


написать администратору сайта