0

我在 Win7 上使用 Active State Perl,并希望在 Tkx 下运行 Canvas。

Active State 构建是相互不兼容的 Tk 和 Tkx 模块在相似但不相同的文件夹中的全部混乱,以及由于在引用的库中找不到模块而无法运行的示例程序。

谁能指导我使用 Tkx 下的 Canvas 示例 perl 程序,该程序在 Windows 的 Active State perl 系统上运行?

以下是安装在我的光盘上的 Tk 和 Tkx 文件夹 Active State:

编辑:好的!没有人在 Tkx 下有一个 Canvas 程序,它在 Windows 的 Active State perl 系统上运行。我想这告诉我我需要知道什么。这是不可能的。

覆盆子 Perl 怎么样。可以在那里做吗?

============== Tk ===========================
C:\Perl\Documentation\Tk Manual.htm
C:\Perl\Documentation\Tk Manual_files
C:\Perl\lib\Tk.pm
C:\Perl\Tk-804.028
C:\Perl\Tk-804.028\demos\Tk.pm
C:\Perl\Tk-804.028\Documentation\Tk Manual.htm
C:\Perl\Tk-804.028\Documentation\Tk Manual_files
C:\Perl\Tk-804.028\Good online Tk Tutorial.url
C:\Perl\Tk-804.028\pod\Tk.cmd
C:\Perl\Tk-804.028\pTk\bitmaps\tk.bmp
C:\Perl\Tk-804.028\pTk\mTk\generic\tk.decls
C:\Perl\Tk-804.028\pTk\mTk\generic\tk.h
C:\Perl\Tk-804.028\pTk\mTk\unix\tk.spec
C:\Perl\Tk-804.028\pTk\mTk\win\rc\tk.ico
C:\Perl\Tk-804.028\pTk\mTk\win\rc\tk.rc
C:\Perl\Tk-804.028\pTk\tk.exc
C:\Perl\Tk-804.028\pTk\tk.m
C:\Perl\Tk-804.028\pTk\tk.t
C:\Perl\Tk-804.028\Tixish\lib\Tk
C:\Perl\Tk-804.028\Tk
C:\Perl\Tk-804.028\Tk-804.028.tar
C:\Perl\Tk-804.028\Tk.pm
C:\Perl\Tk-804.028\Tk.pod
C:\Perl\Tk-804.028\Tk.xs
C:\Perl\Tk-804.028\Tk\Tk.xbm
C:\Perl\Tk-804.028\Tk\Tk.xpm
C:\Perl\Tkx\TkDocsTutorial_files\tk.css

========== Tkx ======

C:\Perl\Active Perl\bin\tkx-ed.html
C:\Perl\Active Perl\html\bin\tkx-ed.html
C:\Perl\Active Perl\html\lib\ActiveState\Tkx
C:\Perl\Active Perl\html\lib\Tkx
C:\Perl\Active Perl\html\lib\Tkx.html
C:\Perl\Active Perl\lib\Tkx
C:\Perl\Active Perl\lib\Tkx.html

C:\Perl\bin\tkx-ed
C:\Perl\bin\tkx-ed.bat
C:\Perl\bin\tkx-prove
C:\Perl\bin\tkx-prove.bat

C:\Perl\html\bin\tkx-ed.html
C:\Perl\html\lib\ActiveState\Tkx
C:\Perl\html\lib\Tkx
C:\Perl\html\lib\Tkx.html

C:\Perl\lib\ActiveState\Tkx
C:\Perl\lib\ActiveState\Tkx.pm
C:\Perl\lib\auto\Tkx
C:\Perl\lib\Tkx
C:\Perl\lib\Tkx.pm

C:\Perl\Tkx
C:\Perl\Tkx\Perl-lib-Tkx.lnk
C:\Perl\Tkx\Tkx Reference Manual.html.lnk

C:\Perl64\bin\tkx-ed
C:\Perl64\bin\tkx-ed.bat
C:\Perl64\bin\tkx-prove
C:\Perl64\bin\tkx-prove.bat
C:\Perl64\html\bin\tkx-ed.html
C:\Perl64\html\lib\ActiveState\Tkx
C:\Perl64\html\lib\Tkx
C:\Perl64\html\lib\Tkx.html
C:\Perl64\lib\ActiveState\Tkx
C:\Perl64\lib\ActiveState\Tkx.pm
C:\Perl64\lib\auto\Tkx
C:\Perl64\lib\Tkx
C:\Perl64\lib\Tkx.pm
4

1 回答 1

1

Canvas 是 Tcl/Tk 的一部分,因此可以通过 Tkx 获得。这是一个简单的例子:

use strict;
use warnings;
use Tkx;

my $mw = Tkx::widget->new('.');
my $canvas = $mw->new_canvas();
$canvas->g_pack();

$canvas->create_text(100, 10, -text => "Hello, world!");
$canvas->create_rectangle(25, 25, 50, 50, -fill => 'red');
$canvas->create_oval(40, 40, 80, 80, -fill => 'green');
$canvas->create_line(20, 20, 100, 100);

Tkx::MainLoop();

TkDocs 有一个画布教程,其中包括带有 Tkx 的 Perl 示例代码。

请注意,Tkx 是 Tcl/Tk 上的一个非常薄的层。Tkx 文档描述了该层的工作原理,但对于大多数任务,您需要查阅 Tk 文档并将命令翻译成 Perl。例如pathName create line x1 y1...变成$canvas->create_line(x1, y1, ...)

在 ActivePerl 下使用 Tkx 是最简单的,因为它捆绑了必要的 Tcl/Tk 库。要在不同的 Perl 发行版下使用 Tkx,您需要单独安装 Tcl/Tk 并配置您的环境,以便 Tkx 可以找到它。

于 2016-07-08T18:20:45.847 回答