|
|
Subject: Can't manage ... it's a top-level window
From: Robert Heller
Date: 11/30/2007 9:13:54 PM
At Fri, 30 Nov 2007 11:59:11 -0800 (PST) vnpenguin <vnpenguin@gmail.com> wrote:
>
> Hi all,
> I'm newbie to Tcl/Tk. Just install ActiveTcl8.4.16.0.282109 on my
> Win2k box. I'm try now the follow code:
> =========================================
> set FR0 [ labelframe .fr0 -text "Test" ];
>
> set lb1 [ label $FR0.name1 -text "Name:" ];
> set op_menu1 [ tk_optionMenu $FR0.op1 v_op1 "A" "B" "C" ];
> set lb2 [ label $FR0.name2 -text "Name2::" ];
> set op_menu2 [ tk_optionMenu $FR0.op2 v_op2 "X" "Y" "Z" ];
>
> grid $lb1 $op_menu1 -row 1
> grid $lb2 $op_menu2 -row 2
> pack $FR0
> =========================================
> But when I run I got error:
>
> Can't manage ".fr0.op1.menu": it's a top-level window
> while executing
> "grid $lb1 $op_menu1 -row 1"
> (file "test01.tcl" line 8)
>
> Anyone could tell me how to fix that please,
tk_optionMenu does NOT return the menubutton widget ($FR0.op1 /
$FR0.op2), but instead it returns the popup menu associated with the
menubutton widget. Bascially, you really cannot use the result of
tk_optionMenu the way you can use the result of normal widget creation
functions.
Try this code instead (which works with Tcl/Tk 8.4.7 under CentOS 4.5):
=========================================
set FR0 [ labelframe .fr0 -text "Test" ];
set lb1 [ label $FR0.name1 -text "Name:" ];
set op_menubut1 $FR0.op1
set op_menu1 [ tk_optionMenu $op_menubut1 v_op1 "A" "B" "C" ];
set lb2 [ label $FR0.name2 -text "Name2::" ];
set op_menubut2 $FR0.op2
set op_menu2 [ tk_optionMenu $op_menubut2 v_op2 "X" "Y" "Z" ];
grid $lb1 $op_menubut1 -row 1
grid $lb2 $op_menubut2 -row 2
pack $FR0
=========================================
>
> Thanks in advance,
>
--
Robert Heller -- Get the Deepwoods Software FireFox Toolbar!
Deepwoods Software -- Linux Installation and Administration
http://www.deepsoft.com/ -- Web Hosting, with CGI and Database
heller@deepsoft.com -- Contract Programming: C/C++, Tcl/Tk
|