Pergunta

Isso pode ser um problema com o meu entendimento com Curses mais do que com Perl, mas por favor, ajude-me. Estou usando Curses.pm que funciona muito bem, exceto quando eu tento criar um maldições "janela". Código Exemplo:

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

nada saídas. Não usando uma janela funciona bem:

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

Solução

Você precisa obter seus argumentos no lugar certo, e não é fácil de lembrar qual número é o que. Eu sempre tenho que procurá-lo depois de tentar todas as permutações erradas em primeiro lugar. Eu só olhar para as páginas man para a interface C e, em seguida, alterá-lo para sintaxe Perl.

A função newwin, documentado no href="http://www.mkssoftware.com/docs/man3/curs_window.3.asp" rel="nofollow noreferrer"> curs_window página homem , leva:

newwin( height, width, starty, startx )

Você configura uma janela que foi uma alta linha e uma coluna de largura, começando na linha 40 coluna 40. No entanto, você em seguida, dizer addstr para colocar texto na linha 20 coluna 20 nessa janela. Que está fora do quadro 1x1 configurar, para que você não ver nada.

Tente isto para ver se ele funciona para você. Se isso funcionar, tente ajustar os valores da janela para obter o quadro que você quer.

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;
scroll top