4

これは、Perl よりも Curses に関する私の理解に問題がある可能性がありますが、助けてください。curses の「ウィンドウ」を作成しようとする場合を除いて、非常にうまく機能する Curses.pm を使用しています。コード例:

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; 
4

1 に答える 1

8

議論を適切な場所に置く必要があり、どの数字が何なのかを覚えるのは簡単ではありません。最初に間違った順列をすべて試した後、常にそれを調べなければなりません。C インターフェイスの man ページを見て、それを Perl 構文に変更するだけです。

curs_windowのman ページにnewwin記載されている関数は、次のものを取ります。

newwin( height, width, starty, startx )

高さ 1 行、幅 1 列のウィンドウを、行 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;
于 2008-12-27T12:13:53.843 に答える