Шаг 99.
Библиотека PyQt5.
Основные компоненты. Надпись
На этом шаге мы рассмотрим назначение компонента, его основные методы и сигналы.
Надпись применяется для вывода подсказки пользователю, информирования пользователя о ходе выполнения операции, назначения клавиш быстрого
доступа применительно к другому компоненту, а также для вывода изображений и анимации. Кроме того, надписи позволяют отображать отформатированный
с помощью CSS текст в формате HTML, что позволяет реализовать простейший Web-браузер. В библиотеке PyQt5
надпись реализуется с помощью класса QLabel. Иерархия наследования выглядит так:
(QObject, QPaintDevice) - QWidget - QFrame - QLabel
Конструктор класса QLabel имеет два формата:
<Объект> = QLabel ([parent=<Родитель>] [, flags=<Тип окна>])
<Объект> = QLabel (<Текст>[, parent=<Родитель>][, flags=<Тип окна>])
В параметре parent указывается ссылка на родительский компонент. Если параметр не указан или имеет значение None, то компонент
будет обладать своим собственным окном, тип которого можно задать с помощью параметра flags. Параметр <Текст>
позволяет задать текст, который будет отображен на надписи. Пример:
label = QtWidgets.QLabel("Текст надписи", flags=QtCore.Qt.Window)
label.resize(300, 50)
label.show()
Класс QLabel поддерживает следующие основные методы (полный их список смотрите на странице https://doc.qt.io/qt-5/qlabel.html):
- setText (<Текст>) - задает текст, который будет отображен на надписи. Можно указать как обычный текст, так и содержащий
CSS-форматирование текст в формате HTML. Пример:
label.setText("Текст <b>полужирный</b>")
Перевод строки в простом тексте осуществляется с помощью символа \n, а в тексте в формате HTML - с помощью тега <br>. Пример:
label.setText("Текст\nна двух строках")
Внутри текста символ &, указанный перед буквой или цифрой, задает комбинацию клавиш быстрого доступа. В этом случае буква, перед которой
указан символ &, будет, в качестве подсказки пользователю, подчеркнута. При одновременном нажатии клавиши Alt и подчеркнутой буквы
компонент, ссылка на который передана в метод setBuddy(), окажется в фокусе ввода. Чтобы вывести сам символ &, необходимо его удвоить.
Если надпись не связана с другим компонентом, то символ & выводится в составе текста. Пример:
label = QtWidgets.QLabel("&Пароль")
lineEdit = QtWidgets.QLineEdit()
label.setBuddy(lineEdit)
Метод является слотом;
- setNum (<Число>) - преобразует целое или вещественное число в строку и отображает ее на надписи. Метод является слотом;
- setWordWrap (<Флаг>) - если в параметре указано значение True, то текст может переноситься на другую строку.
По умолчанию перенос строк не осуществляется;
- text () - возвращает текст надписи;
- setTextFormat (<Режим>) - задает режим отображения текста. Могут быть указаны следующие атрибуты класса Qtcore.Qt:
- PlainText (или 0) - простой текст;
- RichText (или 1) - текст, отформатированный тегами HTML;
- AutoText (или 2) - автоматическое определение (режим по умолчанию). Если текст содержит HTML-теги, то используется
режим RichText, в противном случае - режим PlainText;
- setAlignment (<Режим>) - задает режим выравнивания текста внутри надписи. Допустимые значения мы рассматривали
на 81 шаге. Пример:
label.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignBottom)
- setOpenExternalLinks (<Флаг>) - если в качестве параметра указано значение True, теги
<a>, присутствующие в тексте, будут преобразованы в гиперссылки:
label.setText('<а href="http://www.google.ru/">Это гиперссылка</а>')
label.setOpenExternalLinks(True)
- setBuddy (<Компонент>) - позволяет связать надпись с другим компонентом. В этом
случае в тексте надписи можно задавать клавиши быстрого доступа, указав символ & перед буквой или цифрой. После нажатия комбинации
клавиш в фокусе ввода окажется компонент, ссылка на который передана в качестве параметра;
- setPixmap (<QPixmap>) - позволяет вывести изображение на надпись. В качестве параметра указывается экземпляр класса QPixmap. Метод является слотом. Пример:
label.setPixmap(QtGui.QPixmap("picture.jpg"))
- setPicture (<QPicture>) - позволяет вывести рисунок. В качестве параметра указывается экземпляр класса QPicture. Метод
является слотом;
- setMovie (<QMovie>) - позволяет вывести анимацию. В качестве параметра указывается экземпляр класса QMovie. Метод является слотом;
- setScaledContents (<Флаг>) - если в параметре указано значение True, то при изменении размеров надписи размер
содержимого также будет изменяться. По умолчанию изменение размеров содержимого не осуществляется;
- setMargin (<Отступ>) - задает отступы от границ компонента до его содержимого;
- setIndent (<Отступ>) - задает отступ от рамки до текста надписи в зависимости от значения выравнивания. Если выравнивание производится по левой стороне,
то задает отступ слева, если по правой стороне, то справа;
- clear () - удаляет содержимое надписи. Метод является слотом;
- setTextInteractionFlags (<Режим>) - задает режим взаимодействия пользователя с текстом надписи. Можно указать следующие атрибуты
(или их комбинацию через оператор |) класса QtCore.Qt:
- NoTextInteraction (или 0) - пользователь не может взаимодействовать с текстом надписи;
- TextSelectableByMouse (или 1) - текст можно выделить мышью, чтобы, например, скопировать его в буфер обмена;
- TextSelectableByKeyboard (или 2) - текст можно выделить с помощью клавиш на клавиатуре. Внутри надписи будет отображен текстовый курсор;
- LinksAccessibleByMouse (или 4) - на гиперссылках, присутствующих в тексте надписи, можно щелкать мышью;
- LinksAccessibleByKeyboard (или 8) - с гиперссылками, присутствующими в тексте надписи, допускается взаимодействовать с помощью клавиатуры: перемещаться
между гиперссылками можно с помощью клавиши Tab, а переходить по гиперссылке - по нажатию клавиши Enter;
- TextEditable (или 16) - текст надписи можно редактировать;
- TextEditorInteraction - комбинация TextSelectableByMouse | TextSelectableByKeyboard | TextEditable;
- TextBrowserInteraction - комбинация TextSelectableByMouse | LinksAccessibleByMouse | LinksAccessibleByKeyboard;
- setSelection (<Индекс>, <Длина>) - выделяет фрагмент длиной <Длина>, начиная с позиции <Индекс>;
- selectionStart () - возвращает начальный индекс выделенного фрагмента или значение -1, если ничего не выделено;
- selectedText () - возвращает выделенный текст или пустую строку, если ничего не выделено;
- hasSelectedText () - возвращает значение True, если фрагмент текста надписи выделен, и False - в противном случае.
Класс QLabel поддерживает следующие сигналы:
- linkActivated (<URL>) - генерируется при переходе по гиперссылке. Через параметр
внутри обработчика доступен URL-адрес, заданный в виде строки;
- linkHovered (<URL>) - генерируется при наведении указателя мыши на гиперссылку.
Через параметр внутри обработчика доступен URL-адрес в виде строки или пустая строка.
На следующем шаге мы рассмотрим командную кнопку.
Предыдущий шаг
Содержание
Следующий шаг