中村 のりつぐ です。

TkMenuClone が良く分かりません。

Tcl/Tk, Perl/Tk では一応使えたのですが、
Ruby/Tk の場合の使い方が分かりませんでした。


#!/usr/bin/env wish

menubutton .b1 -text File -menu .b1.m1
menu .b1.m1
.b1.m1 add command -label "Open" -command { puts Open }
.b1.m1 add command -label "Exit" -command { exit }

menubutton .b2 -text File2 -menu .b2.m2
.b1.m1 clone .b2.m2

pack .b1 .b2 -side left


#!/usr/bin/env perl

use Tk;

$mw = new MainWindow;

$m1 = $mw->Menu();
$mw->configure(-menu => $m1);

$m1->add('cascade', -label => 'File');
$m1->add('cascade', -label => 'File2');

$i1 = $m1->Menu();
$m1->entryconfigure('File', -menu => $i1);

$i1->add('command', -label => "Open", -command => sub { print "Open\n"; });
$i1->add('command', -label => "Exit", -command => sub { exit });


$i2 = $i1->clone($m1);
$m1->entryconfigure('File2', -menu => $i2);

MainLoop;


#!/usr/bin/env ruby

require "tk"

m1 = TkMenu.new
Tk.root.configure('menu' => m1)

m1.add("cascade", 'label' => "File")
m1.add("cascade", 'label' => "File2")

i1 = TkMenu.new(m1)
m1.entryconfigure('File', 'menu' => i1)

i1.add('command', 'label' => "Open", 'command' => proc { print "Open\n" })
i1.add('command', 'label' => "Exit", 'command' => proc { exit })

#i2 = TkMenuClone.new(i1)
i2 = TkMenuClone.new(m1)
m1.entryconfigure('File2', 'menu' => i2)

Tk.mainloop

       中村 典嗣  E-mail:     nnakamur / mxq.mesh.ne.jp