質問

これはPerlでより多くの呪いと私の理解に問題があるかもしれませんが、私を助けてください。私は呪い「ウィンドウ」を作成しようとする場合を除き、非常にうまく機能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; 
役に立ちましたか?

解決

あなたは正しい場所にあなたの引数を取得する必要があり、それは何が何であるか数を覚えておくことは容易ではありません。私はいつも最初にすべて間違っ順列を試した後、それをルックアップする必要があります。私はCインタフェースのmanページを見て、その後、Perlの構文に変更します。

curs_window のmanページに記載さnewwin機能、取ります:

newwin( height, width, starty, startx )

あなたはしかし、あなたはそのウィンドウに行20列20でテキストを配置するaddstrを伝える行で40列40を起動する、広い高1行1列だったウィンドウを設定します。それはあなたが設定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;
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top