perltk教程

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

水木社区(展开完整界面) → Perl的世界→ 精华区文章阅读

Perl 版 (精华区)

发信人: sisoe (游刃), 信区: Perl

标题: perl/tk教程

发信站: BBS 水木清华站 (Tue Aug 29 12:23:44 2000)

perl/tk 教程

浦绍忠

前言

perl/tk 在图形界面、表框设计、菜单设计等方面功能强大,对字体、颜色

和绑定使用灵活,容易上手。

本教程写作原则:

简洁明了地介绍 perl/tk 的功能及其使用,对功能的使用一般只介绍一种

方法,其余方法由读者自己实践。对于perl/tk的常用功能及其使用给以相应的

例子,为突出选项的作用,在例子中有时不是遵循美学原则,得到漂亮的界面,

而是使用一些夸张的选项值。

教程的介绍对象是 perl/tk 402.002 版本,使用Windows 序列操作系统,

本教程中全部例子都在 Windows95,Windows98 下试验通过。

讲解 perl/tk 基本组件,基本使用方法,对 perl/tk 的扩展模块不作说明,

由读者自己去学习掌握。假定读者已掌握 perl 基础知识,对例子中用到的perl

基础知识不作讲解。

第一章 perl/tk 概要说明

一。perl/Tk的取得

从多个网站上可以取得perl/Tk, perl/Tk的安装需要C++的编译器。

Gurusamy Sarathy 已经为使用 Intel 芯片的机器在 NT 上安装了最常用模块的

tar 文件,压缩文件大约有6M,安装后大约有24M,安装后就可以在 Windows 系

列系统下使用 Perl/Tk。为便于下载,你可以从国内网站"http://ftp.freesoft.

/pub/languages/perl/CPAN/modules/by-authors/id/GSAR/"取得

Gurusamy Sarathy 安装好的 perl5.00402-bindist04-bc.zip文件。解压,然后

安装后即可使用(不需要自己用C++编译器进行编译)。

二。perl/tk描述

perl/tk--用perl5写tk程序, perl/tk是GUI类程序,即事件驱动程序。GUI

主循环在用户程序之外,在GUI库内,该主循环监视所有“感兴趣”事件,激活

相应程序处理这些事件,这些处理程序可以由用户提供,也可以是GUI库的一个

部分。

不需要编程人员时刻注视着正在发生的事件,而是当工具包需要的时候再动

作,也不需要等待着“打开窗口/关闭窗口/重画窗口”这些请求,而是告诉工具

包哪个过程处理这些请求,当需要的时候工具包再调用所需过程。

程序要求:

perl/tk 程序需要 use Tk 语句,有必要包含 use strict 语句和 -w 开关

以避免公共错误。

任何 tk 应用都需要首先创建 tk 主窗口,然后创建窗口内的项目或者新窗

口,最后创建主循环(当然也可以在运行时创建更多的项目和窗口)。当包装项

目时,它们显现出来。然后执行 tk 主循环,这将启动 GUI 和处理应用中的所有事件。

创建主窗口使用:

$mw = new MainWindow; 或者 $mw = MainWindow -> new;

项目创建

tk 窗口和组件是分层结构的,它们互不包含。

创建组件使用:

$widget = $parent -> widgetclass(?-option => value,...?);

widgetclass 是需要创建的新组件类(例如,Button),$parent 是父组件的perl/Tk 指针,新建组件的对象指针储存在 $widget 中, $widget 成为 $ parent的一个子件,它创建分层组件。

以下语句创建一个按钮组件 $b ,并用包装方法将它显示出来。

$b = $mw -> Button(-text => "hello world")->pack;

所有组件创建命令能够使用选项 =>资源参数形式将资源数据库同组件联

系起来。

选项以“-”开始,通常跟一个数值:一个整数、或者一个字符串是一个perl 标量、数组、哈希数组或者代码指针。创建后,可以用配置方法改变选项值。配置方法的一般形式:

$widget = configure(-option => value,...);

用 cget 命令查询选项的当前配置值:

$widget = cget(-option);

exam1.pl 显示一个窗口

#####exam1.pl

#! /usr/bin/perl5 -w

use strict;

use Tk;

my $main = new MainWindow;

$main->Label(-text => 'Hello, world!')->pack;

$main->Button(-text => 'Quit',

-command => sub{exit}

)->pack;

MainLoop;

exam1.pl 中创建了主窗口和项目,并对项目进行了包装。

在 tk 句柄上使用构造器方法,能在窗口或组件内创建子项目。构造方法中能指定各种选项;之后能用 configure 方法增加或改变选项。Toplevel 构造器方法创建一个顶层窗口,是分层结构的一个例外。

在 exam1.pl 中,使用 new MainWindow 语句创建第一个 tk 窗口,返回一个窗口句柄,赋给 $main 变量。从¥main 用 Label 方法在主窗口中创建了一个标签组件。

创建组件后,需要对它进行包装,如果不再需要该组件,可以用 destrory 方法删除它,删除后将取消组件和它的一切子件的映射。注意,复合调用得到包装结果而非一个有效的tk句柄。

标准 tk 组件类型:

Button 按钮

相关文档
最新文档