Шаг 96.
Библиотека PyQt5.
Размещение компонентов в окнах. Панели с изменяемым размером (окончание)
На этом шаге мы рассмотрим основные методы класса, связанного с этим компонентом.
Класс QSplitter поддерживает следующие методы (здесь приведены только основные - полный их список содержится на странице https://doc.qt.io/qt-5/qsplitter.html):
- addWidget (<Компонент>) - добавляет компонент в конец контейнера;
- insertWidget (<Индекс>, <Компонент>) - добавляет компонент в указанную позицию. Если компонент был добавлен ранее, то он будет перемещен в новую позицию;
- setOrientation (<Ориентация>) - задает ориентацию размещения компонентов. Могут быть заданы атрибуты Horizontal (по горизонтали) или Vertical (по вертикали) класса QtCore.Qt;
- setHandleWidth (<Ширина>) - задает ширину компонента-разделителя, взявшись за который мышью, можно изменить размер области;
- saveState () - возвращает экземпляр класса QByteArray с размерами всех областей. Эти данные можно сохранить (например, в файл), а затем восстановить с помощью метода restoreState();
- setChildrenCollapsible (<Флаг>) - если в параметре указано значение False, пользователь не сможет уменьшить размеры всех компонентов до нуля. По умолчанию размер может быть нулевым,
даже если установлены минимальные размеры компонента;
- setCollapsible (<Индекс>, <Флаг>) - значение False в параметре <Флаг> запрещает уменьшение размеров до нуля для компонента с указанным индексом;
- setOpaqueResize (<Флаг>) - если в качестве параметра указано значение False, то размеры компонентов изменятся только после окончания перемещения границы и отпускания кнопки мыши.
В процессе перемещения мыши вместе с ней будет перемещаться специальный компонент в виде линии;
- setStretchFactor (<Индекс>, <Фактор>) - задает фактор растяжения для компонента с указанным индексом;
- setSizes (<Список>) - задает размеры всех компонентов. Для горизонтального контейнера указывается список со значениями ширины каждого компонента, а для вертикального контейнера - список со значениями высоты каждого компонента;
- sizes () - возвращает список с размерами (шириной или высотой):
print(splitter.sizes()) # Результат: [308, 15]
- count () - возвращает количество компонентов. Получить количество компонентов можно также с помощью функции len():
print(splitter.count(), len(splitter))
- widget (<Индекс>) - возвращает ссылку на компонент, который расположен по указанному индексу, или значение None;
- indexOf (<Компонент>) - возвращает индекс области, в которой расположен компонент. Если таковой не найден, возвращается значение -1.
При изменении размеров генерируется сигнал splitterMoved(<Позиция>, <Индекс>). Через первый параметр внутри обработчика доступна новая позиция, а через
второй параметр - индекс перемещаемого разделителя; оба параметра целочисленные.
На следующем шаге мы рассмотрим область с полосами прокрутки.
Предыдущий шаг
Содержание
Следующий шаг