Questions about Tk - Newbie

Hey I’ve just started to learn my first GUI toolkit today. Tk :slight_smile:

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 :slight_smile:

Thanks in advande :slight_smile:

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 A. [email protected]:

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

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”

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 A. [email protected]:

From: “Jeppe J.” [email protected]
Subject: Re: Questions about Tk - Newbie
Date: Sat, 1 Apr 2006 22:59:01 +0900
Message-ID:
[email protected]

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

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 :slight_smile:

2006/4/1, Hidetoshi NAGAI [email protected]: