2008-12-27 49 views
4

这可能是我对Curses的了解比Perl更多的问题,但请帮助我。我使用Curses.pm,除了当我尝试创建一个curses“窗口”时,它工作得很好。示例代码:为什么我的Perl诅咒窗口无法工作?

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; 
+0

你也在Perlmonks上问过这个问题:http://www.perlmonks.org/index.pl?node_id=732771告诉别人你已经把它发布到多个地方,花时间回答已经回答的问题。 – 2008-12-27 12:51:29

回答

8

您需要将您的论点放在正确的位置,并且记住什么是数字并不容易。首先尝试所有错误的排列后,我总是必须查看它。我只看C界面的手册页,然后将其更改为Perl语法。

newwin功能,在curs_window手册页中,需要:

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;