I'm a bit confused about this,
when you create a TkEntry Widgit on a frame
How exactly do you put the data entered into a variable?
I want it passed when the user clicks a button.
So I was looking at examples and it seemed to say that along
with passing the frame name, i should pass a textvariable linked
too a variable. But thats just throwing errors.
I was looking at examples that seem to bind the data but i was
having difficulty figuring out what they were passing.
Could I bother someone to explain it briefly. I want to be able to
understand it to make sure I can do this.
···
--
Posted via http://www.ruby-forum.com/.
Ok.
Sample code for other newbies.
@mytext = TkVariable.new('hi this is a test')
testtwo = TkEntry.new(Frameone, 'textvariable'=> @mytext)
{
puts value
}
Value outputs whats been passed to the TkEntry widgit.
I think.
Binding I think will allow data into the widgit
so possibility into the variable. But I havent got that far yet.
···
--
Posted via http://www.ruby-forum.com/.
Message-ID: <29004b56e98ed3a6904a59609e153d88@ruby-forum.com>
Sample code for other newbies.
@mytext = TkVariable.new('hi this is a test')
testtwo = TkEntry.new(Frameone, 'textvariable'=> @mytext)
{
puts value
}
Value outputs whats been passed to the TkEntry widgit.
I think.
----<sample 1>--------------------------------------
mytext = @mytext = TkVariable.new('hi this is a test')
testtwo = TkEntry.new(Frameone, 'textvariable'=> @mytext)
{
# self is the TkEntry widget
self.bind('Button-1'){puts mytext.value}
}
···
From: Mer Gilmartin <merrua@yahoo.co.uk>
Subject: Re: Passing the data from a tkEntry widgit to a variable
Date: Sat, 14 Oct 2006 00:01:34 +0900
----------------------------------------------------
----<sample 2>--------------------------------------
testtwo = TkEntry.new(Frameone)
{
self.value = 'hi this is a test'
self.bind('Button-1'){puts self.value}
}
----------------------------------------------------
----<sample 3>--------------------------------------
@mytext = 'hi this is a test'
testtwo = TkEntry.new(Frameone)
testtwo.value = @mytext
testtwo.bind('Button-1'){@mytext = testtwo.value; puts @mytext}
----------------------------------------------------
----<sample 4>--------------------------------------
@mytext = 'hi this is a test'
testtwo = TkEntry.new(Frameone)
testtwo.value = @mytext
callback = proc{@mytext = testtwo.value; puts @mytext}
testtwo.bind('Button-1', callback)
testtwo.bind('Return', callback)
----------------------------------------------------
----<sample 5>--------------------------------------
@mytext = 'hi this is a test'
testtwo = TkEntry.new(Frameone)
testtwo.value = @mytext
ev = TkVirtualEvent.new('Button-1', 'Return')
testtwo.bind(ev){@mytext = testtwo.value; puts @mytext}
----------------------------------------------------
and so on.
--
Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
Hidetoshi NAGAI wrote:
----<sample 5>--------------------------------------
@mytext = 'hi this is a test'
testtwo = TkEntry.new(Frameone)
testtwo.value = @mytext
ev = TkVirtualEvent.new('Button-1', 'Return')
testtwo.bind(ev){@mytext = testtwo.value; puts @mytext}
----------------------------------------------------
and so on.
Trying your examples and think I understand them and what
they are doing. I have a much better idea of how to use
tkvirtual event anyway.
But The data in the entry box goes into the
variable as soon as I click on the entry box. Not when i click
on the button. Button-1 means left click so I see why this is
so.
How do I change the action to clicking on a button?
I was wondering if the button name instead of button-1 might do
it. But of course it doesnt.
···
--
Posted via http://www.ruby-forum.com/\.
Bind 'ButtonRelease-1' and its action to your button widget. Supposing your button is referenced by the variable 'my_btn', then the following should work:
my_btn.bind('ButtonRelease-1'){@mytext = testtwo.value; puts @mytext}
I prefer handling a 'ButtonRelease-1' event to a 'Button-1' (an alias for 'ButtonPress-1') because it gives the user a chance withdraw from committing to a widget action to by clicking off the widget in question.
If you need to bind more than one event to the button, then use a virtual event as Nagai san demonstrated.
Regards, Morton
···
On Oct 16, 2006, at 10:53 AM, Mer Gilmartin wrote:
Hidetoshi NAGAI wrote:
----<sample 5>--------------------------------------
@mytext = 'hi this is a test'
testtwo = TkEntry.new(Frameone)
testtwo.value = @mytext
ev = TkVirtualEvent.new('Button-1', 'Return')
testtwo.bind(ev){@mytext = testtwo.value; puts @mytext}
----------------------------------------------------
and so on.
Trying your examples and think I understand them and what
they are doing. I have a much better idea of how to use
tkvirtual event anyway.
But The data in the entry box goes into the
variable as soon as I click on the entry box. Not when i click
on the button. Button-1 means left click so I see why this is
so.
How do I change the action to clicking on a button?
I was wondering if the button name instead of button-1 might do
it. But of course it doesnt.