Perl/Tk入门学习(上)

由于项目需求,要编写程序的GUI界面,脚本程序使用Perl,因此选用Perl/Tk模块来实现GUI。初次接触Perl/Tk模块,自我摸索过程中,欢迎大家交流与指正。

目标:编写一个程序的使用界面,具体功能为选择文件,实现文件调用并运行程序。

安装:使用Ubuntu系统,安装perl之后,使用sudo apt-get install perl-tk安装Tk模块(在此之前尝试使用CPAN的方法安装,编译文件一直出问题,网上查找发现很多人遇到相同问题且没有找到解决方案),使用perl -e “use Tk”(注意是大写T小写k)检查Tk模块是否安装成功。

使用:安装Tk模块后,使用widget命令,会有很多简单的Perl/Tk例程,可以点击进行学习。

实践:在linux终端运行widget,显示如下例程窗口:

这里写图片描述

选择Common Dialogs的File selection dialog选项,点击see code即可查看使用Tk模块编写的文件选择的源代码。

这里写图片描述

这里写图片描述

读懂程序后,写一个满足自己需要的打开文件的版本,界面如下:

这里写图片描述

code如下:

#! /usr/bin/perl -w

use Tk;
use strict;

my $mw=MainWindow->new;
$mw->title("open file");
my $f=$mw->Frame;
my $lab=$f->Label(-text=>"select a file to open: ",
                  -anchor=>'e');
my $ent=$f->Entry(-width=>20);
my $button=$f->Button(-text=>"Browse",-command=>sub{but_openfile()});
$lab->pack(-side=>'left');
$ent->pack(-side=>'left',-expand=>'yes',-fill=>'x');
$button->pack(-side=>'left');
$f->pack(-fill=>'x',-padx=>'1c',-pady=>3);
MainLoop;

sub but_openfile {
  my $types;
  my $file;
  my @types=
    (["Text files",         [qw/.txt .doc/]],
     ["Text files",         '',             'TEXT'],
     ["Perl Scripts",       '.pl',          'TEXT'],
     ["C Source Files",     ['.c', '.h']],
     ["Image Files",        '.gif'],
     ["Image Files",        ['.jpeg', '.jpg']],
     ["Image Files",        '',             [qw/GIFF JPEG/]],
     ["All files",          '*']
    );
  $file=$mw->getOpenFile(-filetypes=>\@types);

  if (defined $file and $file ne '') {
      $ent->delete(0,'end');
      $ent->insert(0,$file);
      $ent->xview('end');
  }
}
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值