Шаг 90.
Библиотека PyQt5.
Размещение компонентов в окнах. Панель с рамкой
На этом шаге мы рассмотрим класс, позволяющий создавать такую панель.
Класс QFrame расширяет возможности класса QWidget за счет добавления рамки вокруг компонента. Этот класс, в свою очередь, наследуют некоторые компоненты, например
надписи, многострочные текстовые поля и др. Иерархия наследования выглядит так:
(QObject, QPaintDevice) - QWidget - QFrame
Конструктор класса QFrame имеет следующий формат:
<Объект> = QFrame([parent=<Poдитeль>][, flags=<Тип окна>])
В параметре parent указывается ссылка на родительский компонент. Если параметр не указан или имеет значение None, то компонент будет обладать своим собственным окном.
Если в параметре flags указан тип окна, то компонент, имея родителя, будет обладать своим собственным окном, но окажется привязан к родителю. Это позволяет, например, создать
модальное окно, которое будет блокировать только окно родителя, но не все окна приложения. Какие именно значения можно указать в параметре flags, мы уже рассматривали
на 25 шаге.
Класс QFrame поддерживает следующие методы (здесь приведены только основные - полный их список смотрите на странице https://doc.qt.io/qt-5/qframe.html):
- setFrameShape (<Форма>) - задает форму рамки. Могут быть указаны следующие атрибуты класса QFrame:
- NoFrame (или 0) - нет рамки;
- Box (или 1) - прямоугольная рамка;
- Panel (или 2) - панель, которая может быть выпуклой или вогнутой;
- WinPanel (или 3) - панель в стиле Windows 2000, которая может быть выпуклой или вогнутой. Ширина границы 2 пикселя. Этот атрибут присутствует для совместимости
со старыми версиями Qt;
- HLine (или 4) - горизонтальная линия. Используется как разделитель;
- VLine (или 5) - вертикальная линия без содержимого;
- StyledPanel (или 5) - панель, внешний вид которой зависит от текущего стиля. Она может быть выпуклой или вогнутой. Это рекомендуемая форма рамки для панелей;
- setFrameShadow (<Teнь>) - задает стиль тени. Могут быть указаны следующие атрибуты класса QFrame:
- Plain (или 16) - нет эффектов;
- Raised (или 32) - панель отображается выпуклой;
- Sunken (или 48) - панель отображается вогнутой;
- setFrameStyle (<Cтиль>) - задает форму рамки и стиль тени одновременно. В качестве значения указывается комбинация приведенных ранее атрибутов класса QFrame через
оператор |. Пример:
frame.setFrameStyle(QtWidgets.QFrame.Panel | QtWidgets.QFrame.Raised)
- setLineWidth (<Ширина>) - задает ширину линий у рамки;
- setMidLineWidth (<Ширина>) - задает ширину средней линии у рамки. Средняя линия используется для создания эффекта выпуклости и вогнутости и доступна только для
форм рамки Box, HLine и VLine.
На следующем шаге мы рассмотрим панель с вкладками.
Предыдущий шаг
Содержание
Следующий шаг