0

Win7 で Active State Perl を使用しており、Tkx で Canvas を実行したいと考えています。

Active State ビルドは、相互に互換性のない Tk および Tkx モジュールが、類似しているが同一ではないフォルダー内にあり、参照されているライブラリーでモジュールが見つからないために実行されないサンプル プログラムの完全な塊です。

Windows のアクティブ状態の perl システムで実行される Tkx の下で Canvas を使用するサンプル perl プログラムを教えてもらえますか?

ディスクにインストールされているアクティブな状態の Tk および Tkx フォルダーは次のとおりです。

編集:OK!Windows のアクティブ状態の perl システムで実行される Tkx の下の Canvas プログラムはありません。それは私が知る必要があることを教えてくれると思います。それはできません。

ラズベリーパールはどうでしょう。そこで出来ますか?

============== 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, ...)

Tkx は必要な Tcl/Tk ライブラリをバンドルしているため、ActivePerl では Tkx を使用するのが最も簡単です。別の Perl ディストリビューションで Tkx を使用するには、Tcl/Tk を個別にインストールし、Tkx が検出できるように環境を構成する必要があります。

于 2016-07-08T18:20:45.847 に答える