【问题标题】:Why doesn't my Perl curses window work?为什么我的 Perl 诅咒窗口不起作用?
【发布时间】:2008-12-27 10:35:31
【问题描述】:

这可能是我对 Curses 的理解比 Perl 更多的问题,但请帮助我。我正在使用 Curses.pm,它运行良好,除非我尝试创建一个 curses“窗口”。示例代码:

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; 

【问题讨论】:

  • 你也在 Perlmonks 上问过这个问题:perlmonks.org/index.pl?node_id=732771 告诉人们你已经将它发布到多个地方是礼貌的,这样他们就不会花时间回答已经回答的问题。

标签: perl window curses


【解决方案1】:

你需要把你的论点放在正确的地方,记住哪个数字是什么并不容易。在尝试了所有错误的排列之后,我总是要查找它。我只是查看 C 接口的手册页,然后将其更改为 Perl 语法。

newwin 函数,记录在 curs_window 手册页中,需要:

newwin( height, width, starty, startx )

您设置了一个高一列宽的窗口,从第 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;

【讨论】:

    猜你喜欢
    • 2018-06-08
    • 2022-08-14
    • 2013-06-10
    • 1970-01-01
    • 1970-01-01
    • 2014-04-22
    • 2012-03-28
    • 2013-11-13
    • 2010-09-24
    相关资源
    最近更新 更多