Perl/Tk入门学习(上)

来源:互联网 发布:java socket 发送文件 编辑:程序博客网 时间:2024/06/05 10:18

由于项目需求,要编写程序的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 -wuse 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');  }}
1 0
原创粉丝点击