为什么我的Perl curses窗口不起作用?

时间:2008-12-27 10:35:32

标签: perl window curses

我对Curses的理解可能比使用Perl更有问题,但请帮助我。我正在使用Curses.pm,除非我尝试创建一个curses“窗口”,否则它的效果非常好。示例代码:

use Curses;
initscr;
$w=newwin(1,1,40,40);
$w->addstr(20,20,"Hello");
$w->refresh;
refresh;
endwin;

什么都不输出。不使用窗口工作正常:

use Curses;
initscr; 
$w=newwin(1,1,40,40); 
addstr(20,20,"Hello"); 
refresh; 
endwin; 

1 个答案:

答案 0 :(得分:8)

你需要在正确的地方得到你的论点,并且要记住什么数字是不容易的。在首先尝试所有错误的排列后,我总是要查找它。我只看一下C接口的手册页,然后将其更改为Perl语法。

curs_window手册页中记录的newwin函数采用:

newwin( height, width, starty, startx )

您设置一个高一行,一列宽的窗口,从第40行第40行开始。然后,您告诉addstr将文本放在该窗口的第20行第20列。这超出了您设置的1x1帧,因此您看不到任何内容。

试试看看它是否适合你。如果可行,请尝试调整窗口值以获得所需的帧。

use Curses;
initscr;

$w = newwin(
    1,       # height (y)
    COLS(),  # width  (x)
    0,       # start y
    1        # start x
    );

$w->addstr( 
    0,       # relative y to window
    0,       # relative x to window
    "Hello" 
    );

$w->refresh();

sleep 10;
endwin;