首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Perl Curses::UI

Perl Curses::UI
EN

Stack Overflow用户
提问于 2010-05-29 03:36:41
回答 1查看 3.2K关注 0票数 2

我正在尝试使用http://search.cpan.org/dist/Curses-UI/中的Curses:UI库在linux karmic上构建一个UI。

我可以创建一个简单的用户界面,例如:

代码语言:javascript
复制
#!usr/usr/bin/perl

use strict;
use Curses;
use Curses::UI;

$ui = new Curses::UI(-color_support=>1,-clear_on_exit=>1,-intellidraw=>1);
my $window = $ui->add('window', 'Window',-intellidraw=>1);
my $message = $window->add(-text=>"Hello!",-intellidraw=>1);
$window->focus(); 
$ui->mainloop();

问:我需要一些方法来向UI传达信息,即我有一个循环,它将等待消息的到来,并更改窗口中的文本。当此消息出现时,将显示弹出窗口。尝试:

代码语言:javascript
复制
my $ui = new Curses::UI(-color_support=>1,-clear_on_exit=>1,-intellidraw=>1);
my $window = $ui->add('window', 'Window',-intellidraw=>1);
my $message = $window->add(-text=>"Hello!",-intellidraw=>1);

pseudocode
while(true) #implemented a function to wait
{
    popup($window->text("Hello how are you?"));
}

$window->focus(); 
$ui->mainloop();

问题:上面的方法不起作用。我看到了一个黑屏,上面显示了我的消息。我已经阅读了文档,当我将$ui->mainloop()重新定位到while循环之上时,我得到了用户界面,但现在没有任何东西与窗口通信。

简明问题:我需要一些方法来显示用户界面,等待输入和显示消息。

有人能在这方面帮我一下吗?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2011-02-09 20:02:56

我只需要用我自己的eventloop替换$ui->mainloop(),其中我自己的内容也会更新。

对于引用,$ui->mainloop()实现如下:

代码语言:javascript
复制
sub mainloop {
    my ($self) = @_;

    # Draw the initial screen.
    $self->focus(undef, 1); # 1 = forced focus
    $self->draw;
    doupdate();

    # Inifinite event loop.
    while (1) { $self->do_one_event }
}

因此,我只需将您自己的tick()函数添加到while循环中。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2931951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档