windows - 用于创建简单 Microsoft Windows GUI 的 Perl 模块?

标签 windows perl user-interface

我想为我的 Perl 程序创建一个简单的 Windows GUI。它基本上需要生成一个窗口,将日志信息写入文本框,并有一个输入框和几个开始/停止按钮。

有人对我使用哪些 Perl 模块有任何提示吗?与我一起工作的人喜欢 Qt,所以这可能是一种偏好,但我不介意。

最佳答案

我确实使用了 Win32::GUI曾经为这样一个简单的项目。主窗口有一个菜单、一个文本框和一些按钮和复选框。它奏效了。

设置GUI的方法摘录(仅供引用):

my @menu_items = (
    '&File' => 'File',
    ' > &Open'   => {
        -name    => 'FileOpen', 
        -onClick => sub { $self->onFileOpen(@_) },
    },
    ' > &Close'  => { 
        -name    => 'FileClose',
        -onClick => sub { $self->onFileClose(@_) },
    },
    ' > E&xit'   => { 
        -name    => 'FileExit',
        -onClick => sub { $self->onFileExit(@_) },
    },
    '&Help' => 'Help',
    ' > &About'  => { 
        -name    => 'About',
        -onClick => sub { $self->onHelpAbout(@_) },
    },
);

$self->set_main_menu( Win32::GUI::MakeMenu(@menu_items) );

my $window = $self->set_main_window(
    Win32::GUI::Window->new(
        -menu => $self->get_main_menu,
        -name => 'Main',
        -sizable => 0,
        -resizable => 0,
        -hasmaximize => 0,
        -maximizebox => 0,
        -title => $self->get_program_name,
        -onTerminate => sub { -1 }, 
        -onTimer => sub { $self->onTimer(@_) },
    ),
);

$self->set_log_field(
    $window->AddTextfield(
        -name => 'Log',
        -font => Win32::GUI::Font->new(
            -name => 'LogFont',
            -face => 'Courier New',
            -size => 9,
        ),
        -multiline => 1,
        -wantreturn => 1,
        -autovscroll => 1,
        -vscroll => 1,
        -readonly => 1,
    ),
);

$self->get_log_field->MaxLength(40000);

$self->set_status_bar(
    $window->AddStatusBar(
        -name => 'Status',
        -text => $self->get_program_name,
    ),
);

关于windows - 用于创建简单 Microsoft Windows GUI 的 Perl 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1015699/

相关文章:

Perl WWW::Mechanize 作为子类;无法保持登录到抓取的网站

python - 防止按钮按下注册 TKInter/Python 3.3

Perl5 =(等于)运算符优先级

linux - 如何使用Windows机器升级NVIDIA Tegra TX1?

windows - 为什么tcl期望意外退出?

windows - 如何在减小文本大小时避免跟随模式大文本溢出到下一个窗口?

perl - 通过 Perl 脚本控制 Google Chrome

Java AWT/Swing : Get notified on change of position/size of my window

user-interface - 如何将 GUI 添加到 hadoop 程序中?

windows - 在 Windows 服务器上安装 Redis