gpt4 book ai didi

python - 创建子窗口时 Obscure curses 错误消息

转载 作者:太空宇宙 更新时间:2023-11-03 13:21:49 26 4
gpt4 key购买 nike

我有一个创建子窗口的简单 python curses 代码。但是,在运行函数 window.subwin() 的过程中失败并显示消息:

这里是一个测试用例:

import curses

if __name__ == '__main__':
curses.initscr()

window = curses.newwin(15, 40, 7, 20)
window.box()
window.refresh()

subwindow = window.subwin(5, 10, 2, 2)
subwindow.box()
subwindow.refresh()

subwindow.getkey()

curses.endwin()

产生以下输出:

Traceback (most recent call last):
File "c.py", line 12, in <module>
subwindow = window.subwin(5, 10, 2, 2)
_curses.error: curses function returned NULL

有没有办法获得更具描述性的消息?

最佳答案

错误可能发生在无法创建子窗口(非法操作)时。发生这种情况是因为您要求在窗口外绘制子窗口。

subwin 方法接收绝对坐标(相对于屏幕,而不是父窗口)。如果 subwin 坐标在 window 之外,它将失败。失败的另一个原因:宽度或高度溢出窗口。

您可以使用 derwin(派生窗口)代替 subwin,它接收相对坐标(不易出错)。

import curses

if __name__ == '__main__':
curses.initscr()

window = curses.newwin(15, 40, 7, 20)
window.box()
window.refresh()

subwindow = window.derwin(5, 10, 2, 2) # <- here is the change
subwindow.box()
subwindow.refresh()

subwindow.getkey()

curses.endwin()

关于python - 创建子窗口时 Obscure curses 错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11234785/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com