Question

Cela peut être un problème avec ma compréhension avec Curses plus que Perl, mais s'il vous plaît, aidez-moi. J'utilise Curses.pm qui fonctionne très bien, sauf lorsque je tente de créer une malédiction « fenêtre ». Exemple de code:

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

rien. Ne pas utiliser une fenêtre, fonctionne très bien:

use Curses;
initscr; 
$w=newwin(1,1,40,40); 
addstr(20,20,"Hello"); 
refresh; 
endwin; 
Était-ce utile?

La solution

Vous devez obtenir vos arguments au bon endroit, et il est difficile de se rappeler ce numéro est quoi. Je dois toujours le chercher après avoir essayé toutes les mauvaises permutations en premier. Je regarde juste les pages de manuel pour l'interface C puis changer à la syntaxe Perl.

La fonction newwin, documentée dans le curs_window homme, prend:

newwin( height, width, starty, startx )

Vous définissez une fenêtre qui était une ligne haute et une colonne large, en commençant à la ligne 40 colonne 40. Cependant, vous dites alors addstr de mettre le texte à la ligne 20 colonne 20 dans cette fenêtre. C'est en dehors du cadre de 1x1 vous configurez, donc vous ne voyez rien.

Essayez ceci pour voir si cela fonctionne pour vous. Si cela fonctionne, essayez d'ajuster les valeurs de la fenêtre pour obtenir l'image que vous voulez.

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;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top