Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 创建子窗口时隐藏诅咒错误消息_Python_Ncurses_Curses - Fatal编程技术网

Python 创建子窗口时隐藏诅咒错误消息

Python 创建子窗口时隐藏诅咒错误消息,python,ncurses,curses,Python,Ncurses,Curses,我有一个简单的python诅咒代码,它创建了一个子窗口。但是,在运行函数window的过程中,subwin()失败,并显示以下消息: 这里是一个测试用例: import curses if __name__ == '__main__': curses.initscr() window = curses.newwin(15, 40, 7, 20) window.box() window.refresh() subwindow = window.subw

我有一个简单的python诅咒代码,它创建了一个子窗口。但是,在运行函数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
回溯(最近一次呼叫最后一次):
文件“c.py”,第12行,在
subwindow=window.subwin(5,10,2,2)
_curses.error:curses函数返回NULL

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

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

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

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

导入诅咒
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
诅咒。initscr()
窗口=诅咒。纽温(15,40,7,20)
window.box()
window.refresh()

subwindow=window.derwin(5,10,2,2)#请添加一个测试用例,这是一个复制错误的自包含的简短示例。
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()