> **Источник:** https://python-all.ru/3.3/library/curses.panel.html
>
> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.

---

# 16.14. [`curses.panel`](https://python-all.ru/3.3/library/curses.panel.html#module-curses.panel) – расширение стека панелей для curses

Панели – это окна с дополнительной возможностью глубины: их можно располагать друг над другом, и отображаются только видимые части каждого окна. Панели можно добавлять, перемещать вверх или вниз по стеку и удалять.

## 16.14.1. Функции

Модуль [`curses.panel`](https://python-all.ru/3.3/library/curses.panel.html#module-curses.panel) определяет следующие функции:

#### `curses.panel.bottom_panel()`

Возвращает нижнюю панель в стеке панелей.

#### `curses.panel.new_panel(win)`

Возвращает объект панели, связывая его с переданным окном *win*. Следует учитывать, что возвращаемый объект панели необходимо явно сохранять в ссылке. В противном случае объект панели будет собран сборщиком мусора и удалён из стека панелей.

#### `curses.panel.top_panel()`

Возвращает верхнюю панель в стеке панелей.

#### `curses.panel.update_panels()`

Обновляет виртуальный экран после изменений в стеке панелей. Эта функция не вызывает [`curses.doupdate()`](https://python-all.ru/3.3/library/curses.html#curses.doupdate), так что это придётся сделать самостоятельно.

## 16.14.2. Объекты панели

Объекты Panel, возвращаемые функцией [`new_panel()`](https://python-all.ru/3.3/library/curses.panel.html#curses.panel.new_panel) (см. выше), являются окнами с порядком наложения. С панелью всегда связано окно, которое определяет содержимое, а методы панели отвечают за глубину окна в стеке панелей.

Объекты панелей имеют следующие методы:

#### `Panel.above()`

Возвращает панель над текущей панелью.

#### `Panel.below()`

Возвращает панель под текущей панелью.

#### `Panel.bottom()`

Перемещает панель в самый низ стека.

#### `Panel.hidden()`

Возвращает true, если панель скрыта (не видна), и false в противном случае.

#### `Panel.hide()`

Скрывает панель. При этом объект не удаляется, а только делает окно на экране невидимым.

#### `Panel.move(y, x)`

Перемещает панель в координаты экрана `(y, x)`.

#### `Panel.replace(win)`

Заменяет окно, связанное с панелью, на окно *win*.

#### `Panel.set_userptr(obj)`

Устанавливает пользовательский указатель панели в *obj*. Это используется для связывания с панелью произвольных данных, которые могут быть любым объектом Python.

#### `Panel.show()`

Отображает панель (которая могла быть скрыта).

#### `Panel.top()`

Перемещает панель на вершину стека.

#### `Panel.userptr()`

Возвращает указатель пользователя для панели. Это может быть любой объект Python.

#### `Panel.window()`

Возвращает объект окна, связанный с панелью.
