How to get @edit value after "top" is closed ?
If I remember correctly you need to use @edit.value
···
---
Diego
Message-ID: <00f13bf8-211a-4a9c-8355-b6f30a38856a@z19g2000vbz.googlegroups.com>
How to get @edit value after "top" is closed ?
One of the simple solution is to use a TkVariable and
'textvariable' option of an entry widget.
···
From: "graycardinalster@gmail.com" <graycardinalster@gmail.com>
Subject: Ruby/Tk
Date: Fri, 15 May 2009 23:45:07 +0900
------------------------------------------
@edit_var = TkVariable.new
@edit = TkEntry.new(top, :textvariable=>@edit_var).pack
:
cmd = proc{ puts @edit_var.value }
------------------------------------------
--
Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
I not found -textvariable options in TkText
···
--
Posted via http://www.ruby-forum.com/.
Message-ID: <9a4197f4c584ffc1c50449c46246739d@ruby-forum.com>
I not found -textvariable options in TkText
If you use Tcl/Tk8.5, Tk::Text::Peer widget is useful.
···
From: Oleg Igor <graycardinalster@gmail.com>
Subject: Re: Ruby/Tk
Date: Sun, 17 May 2009 18:55:47 +0900
----------------------------------------------------------------------
txt = Tk::Text.new # A base text widget.
# In this case, it isn't shown on the GUI.
top = Tk::Toplevel.new
peer = Tk::Text::Peer.new(txt, top).pack
# A peer widget of 'txt' widget. Its parent is 'top' widget.
# ... destroy 'top' widget ...
p txt.value # This is the same content with the destroyed peer.
----------------------------------------------------------------------
If you use Tcl/Tk8.4 or the former version,
you can "withdraw" the dialog instead of "destroy".
----------------------------------------------------------------------
top = Tk::Toplevel.new
txt = Tk::Text.new(top).pack
@value = ""
top.protocol('WM_DELETE_WINDOW'){ top.withdraw; @value = txt.value }
# Ignore 'WM_DELETE_WINDOW' protocol (e.g. when click the 'delete'
# button on the window frame) from a window manager.
# In this case, withdraw the toplevel widget instead of destroy it.
# ... withdraw the toplevel ...
p @value
top.deiconify # Display the toplevel widget in normal form.
----------------------------------------------------------------------
Or, get value before destroying the toplevel.
----------------------------------------------------------------------
top = Tk::Toplevel.new
txt = Tk::Text.new(top).pack
@value = ""
top.protocol('WM_DELETE_WINDOW'){ @value = txt.value; top.destroy }
# ... destroy the toplevel ...
p @value
----------------------------------------------------------------------
--
Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)