curses.panel — curses 的面板堆栈扩展


面板是增加了深度特性的窗口,因此它们可以相互堆叠,并且每个窗口只有可见部分会被显示。面板可以被添加、在堆栈中上移或下移以及移除。

函数

模块 curses.panel 定义了下列函数:

curses.panel.bottom_panel()

返回面板堆栈中底层的面板。

curses.panel.new_panel(win)

返回一个面板对象,并将其与给定的窗口 win 相关联。请注意,你需要显式地保留对返回的面板对象的引用。否则,面板对象会被垃圾回收并从面板堆栈中移除。

curses.panel.top_panel()

返回面板堆栈中顶层的面板。

curses.panel.update_panels()

在面板堆栈发生改变后更新虚拟屏幕。此函数不会调用 curses.doupdate(),因此你需要自己调用它。

面板对象

由上述 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()

返回与面板关联的窗口对象。