[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Questions about Tk - Newbie

Jeppe Jakobsen

3/31/2006 9:27:00 PM

Hey I've just started to learn my first GUI toolkit today. Tk :)

Well, I surfed around for some tutorials for a while but I only found one
that looked good.
Could you link me some good tutorials? I escpecially need some that gives
examples on how a tk and ruby work together.

My biggiest interest in tk right now, is how I store a string given by the
user from an entry in a ruby variable. So if that is not in included in a
tutorial, could someone please give me an example :)

Thanks in advande :)

--
"winners never quit, quitters never win"
5 Answers

Chris Alfeld

3/31/2006 11:51:00 PM

0

# This can be shortened at the expense of clarity.

require 'tk'

root = TkRoot.new
v = TkVariable.new('Foo')
e = TkEntry.new(root,'textvariable'=>v)
e.pack
b = TkButton.new(root,'text'=>'PrintFoo','command'=>proc {print v.value + "\n"})
b.pack

Tk.mainloop


Jeppe Jakobsen

4/1/2006 1:04:00 AM

0

Okay, thanks. I have played a little around with it now, and I can get a
TkText widget to display a variable. Neither through text or insert. How do
you then do it?

2006/4/1, Chris Alfeld <chris.alfeld@gmail.com>:
>
> # This can be shortened at the expense of clarity.
>
> require 'tk'
>
> root = TkRoot.new
> v = TkVariable.new('Foo')
> e = TkEntry.new(root,'textvariable'=>v)
> e.pack
> b = TkButton.new(root,'text'=>'PrintFoo','command'=>proc {print v.value +
> "\n"})
> b.pack
>
> Tk.mainloop
>
>


--
"winners never quit, quitters never win"

Chris Alfeld

4/1/2006 4:19:00 AM

0

So TkText's don't have textvariable's. They sore their own text
(actually more than just text as it can contain widgets, colors,
different fonts, etc.). Think of TkText and TkCanvas as being
similar. Wheras TkText and TkEntry are not.

require 'tk'

root = TkRoot.new
t = TkText.new(root)
t.insert('end',"Hi, here is some text!\n")
v = t.get('1.0','end')
print v + "\n"


Jeppe Jakobsen

4/1/2006 1:59:00 PM

0

Ok, but what is then common to do when you have a variable pointing to a
string with 1-10 lines of text and you want the string displayed in an
editable field?


2006/4/1, Chris Alfeld <chris.alfeld@gmail.com>:
>
> So TkText's don't have textvariable's. They sore their own text
> (actually more than just text as it can contain widgets, colors,
> different fonts, etc.). Think of TkText and TkCanvas as being
> similar. Wheras TkText and TkEntry are not.
>
> require 'tk'
>
> root = TkRoot.new
> t = TkText.new(root)
> t.insert('end',"Hi, here is some text!\n")
> v = t.get('1.0','end')
> print v + "\n"
>
>


--
"winners never quit, quitters never win"

Jeppe Jakobsen

4/1/2006 4:29:00 PM

0

It's for a sort of calculater that I'm writing (It's supposed to make my
math and physics exams less painful ), so I need to be able to edit some
output, shown in the TkText field, before I process the output further.

Thank very much you for the example, I think it was just what I needed to
make it work :)

2006/4/1, Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>:
>
> From: "Jeppe Jakobsen" <jeppe88@gmail.com>
> Subject: Re: Questions about Tk - Newbie
> Date: Sat, 1 Apr 2006 22:59:01 +0900
> Message-ID: <99b4ad3b0604010558n30ce10c2pd4ae3b5986cf0b6a@mail.gmail.com>
> > Ok, but what is then common to do when you have a variable pointing to a
> > string with 1-10 lines of text and you want the string displayed in an
> > editable field?
>
> Hmm...
> I don't know why you need such realtime reflection.
> I think you may have better solution for your problem.
> However, if you really need it, for example,
> -----------------------------------------------------------
> requrie 'tk'
>
> v = TkVariable.new
>
> TkLabel.new(:textvariable=>v, :relief=>:ridge).pack
> TkButton.new(:text=>'add str', :command=>proc{v.value += 'str'}).pack
> t = TkText.new.pack
>
> v.trace('w', proc{t.value = v.value})
> t.bind('KeyPress', proc{v.value = t.value})
>
> Tk.mainloop
> -----------------------------------------------------------
> --
> Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
>
>


--
"winners never quit, quitters never win"