加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

为什么我的Perl curses窗口不起作用?

发布时间:2020-12-16 06:19:58 所属栏目:大数据 来源:网络整理
导读:我对Curses的理解可能比使用Perl更有问题,但请帮帮我.我正在使用Curses.pm,除非我尝试创建一个curses“窗口”,否则它的效果非常好.示例代码: use Curses;initscr;$w=newwin(1,1,40,40);$w-addstr(20,20,"Hello");$w-refresh;refresh;endwin; 没有输出.不使
我对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,40); 
addstr(20,"Hello"); 
refresh; 
endwin;

解决方法

你需要在正确的地方得到你的论点,并且要记住什么数字是不容易的.在首先尝试所有错误的排列后,我总是要查找它.我只看一下C接口的手册页,然后将其更改为Perl语法.

在curs_window手册页中记录的newwin函数采用:

newwin( height,width,starty,startx )

您设置一个高一行,一列宽的窗口,从第40行第40行开始.然后,您告诉addstr将文本放在该窗口的第20行第20列.这超出了您设置的1×1帧,因此您看不到任何内容.

试试这个,看看它是否适合你.如果可行,请尝试调整窗口值以获取所需的帧.

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;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读