2008-12-27 47 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;