Win-XP,Active-Perl(v5.8.6)利用です。

複数のインプットボックスを持つ、
┌────────────┐
│   ┌───────┐│
│品名:│       ││
│   └───────┘│
│   ┌───────┐│
│科目:│       ││
│   └───────┘│
│   ┌───────┐│
│価格:│       ││
│   └───────┘│
│ ┌──┐┌─────┐│
│ │OK││キャンセル││
│ └──┘└─────┘│
└────────────┘
こんな感じのウィンドウを作りたいのですが、
(図が崩れているかも知れませんが大体のイメージで・・・)
========================================
use Tk;
$top = new MainWindow;
$arg[0] = $top->Entry(-title=>'品名:')->pack;
$arg[1] = $top->Entry(-title=>'科目:')->pack;
$arg[2] = $top->Entry(-title=>'価格:')->pack;
$b[0] = $top->Button(-text=>'OK',-command=> [\&exec,\@arg])->pack;
$b[1] = $top->Button(-text=>'キャンセル',-command=> [\&exec,(-1)])-pack;
========================================
unknown option "-title" at C:\Perl\site\lib/Tk/Widget.pm
Entryに対するオプションが分かりませんでした。

もしくは、Label や Message を組み合わせて実現するものでしょうか。
あと、実際に図のような配置でフォームを作りたい場合、
Buttonの部分の書き方はどのようにすれば良いですか?

以上、ご存知の方、ご教示よろしくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

use strict;


use warnings;
use Tk;

### Main Window
my $window = MainWindow->new();

### Frame
# Goods
my $goods_frame = $window->Frame(
-width => 240,
-height => 30,
-borderwidth => 2,
-relief => 'flat',
);
$goods_frame->pack();

# Price
my $price_frame = $window->Frame(
-width => 240,
-height => 30,
-borderwidth => 2,
-relief => 'flat',
);
$price_frame->pack();

# Confirm
my $confirm_frame = $window->Frame(
-width => 240,
-height => 30,
-borderwidth => 2,
-relief => 'flat',
);
$confirm_frame->pack();

### Widgets
# Goods Label
my $goods_label = $goods_frame->Label(
-text => 'Goods',
-width => 10
);
$goods_label->pack( -side => 'left' );

# Goods Entry
my $goods_entry = $goods_frame->Entry(
-width => 30,
-background => 'white'
);
$goods_entry->pack( -side => 'left' );

# Price Label
my $price_label = $price_frame->Label(
-text => 'Price',
-width => 10
);
$price_label->pack( -side => 'left' );

# Price Entry
my $price_entry = $price_frame->Entry(
-width => 30,
-background => 'white'
);
$price_entry->pack( -side => 'left' );

# OK Button
my $ok_button = $confirm_frame->Button( -text => 'OK', -width => 8 );
$ok_button->pack( -side => 'left' );

# Cancel Button
my $cancel_button = $confirm_frame->Button(
-text => 'Cancel',
-width => 8,
);
$cancel_button->pack( -side => 'left' );

### Loop
MainLoop();
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
最初にフレームを定義しておいて、その中に、packして配置する・・・
といった感じになるのですね。
Perl/Tk の本を探して、更に勉強したいと思います。

サンプルソースまで頂き、お手数をお掛けしました。
ありがとうございました。

お礼日時:2009/05/30 18:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング