Frage

Dies könnte ein Problem mit meinem Verständnis mit Flüchen mehr als mit Perl, aber bitte helfen Sie mir. Ich verwende Curses.pm, die ganz gut, außer funktionieren, wenn ich versuche, einen Fluch „Fenster“ zu erstellen. Beispielcode:

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

gibt nichts. Nicht ein Fenster mit funktioniert gut:

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

Lösung

Sie müssen Ihre Argumente an der richtigen Stelle zu bekommen, und es ist nicht leicht, sich daran zu erinnern, welche Zahl ist, was. Ich muss es immer nachschauen, nachdem zuerst die falschen Permutationen versucht. Ich sehe nur auf den man-Seiten für die C-Schnittstelle und es dann zu Perl-Syntax ändern.

Die newwin Funktion, dokumentiert in der curs_window Manpage nimmt:

newwin( height, width, starty, startx )

Sie legen ein Fenster, das eine Reihe hoch und eine Spalte breit war, in Zeile 40 Spalte 40. Starten Sie dann addstr sagen Text 20 in Zeile Spalte 20 in diesem Fenster zu setzen. Das ist außerhalb des 1x1 Rahmen, den Sie festgelegt, so dass Sie nichts sehen.

Versuchen Sie diese, um zu sehen, ob es für Sie arbeitet. Wenn das funktioniert, versuchen Sie die Fensterwerte Einstellung des Rahmens zu erhalten, die Sie wollen.

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;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top