[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

Combo boxes in Ruby-Tk

Rosalind Mitchell

3/30/2007 2:22:00 PM

I'm a newcomer to Ruby, though a seasoned campaigner in Perl, and I'm
finding my feet, so please be nice!

I've been playing around with the Tk extension. The section on Ruby Tk in
the pickaxe book is sketchy to say the least. I do have a well-thumbed
copy of Learning Perl/Tk, so I know my way around the basics.

My question is: is there any way in Ruby Tk to implement combo boxes?
Neither BrowseEdit nor JComboBox seem to work.

Rosie

5 Answers

Rosalind Mitchell

4/2/2007 8:53:00 AM

0

Rosalind Mitchell wrote:

> I'm a newcomer to Ruby, though a seasoned campaigner in Perl, and I'm
> finding my feet, so please be nice!
>
> I've been playing around with the Tk extension. The section on Ruby Tk in
> the pickaxe book is sketchy to say the least. I do have a well-thumbed
> copy of Learning Perl/Tk, so I know my way around the basics.
>
> My question is: is there any way in Ruby Tk to implement combo boxes?
> Neither BrowseEdit nor JComboBox seem to work.
>
> Rosie

I'm a little surprised that nobody managed to come up with an answer to
this.

Is Tk really a hopeless case with Ruby? If it is, what alternative GUI
manager would you suggest?

Rosie


Julian Schnidder

4/2/2007 10:03:00 AM

0

Hi!

In Brent B. Welsh's book "Practical Programming in Tcl and Tk" 4th
ed. the index redirects "combobox" to "spinbox" (new in Tcl/Tk
version 8.4 IIRC):

require 'tk'

TkSpinbox.new do
from -2
to 2
pack
end

TkSpinbox.new do
from -2
to 2
increment 0.1
pack
end

TkSpinbox.new do
@states=["Arizona", "California", "New Mexico"]
values @states
wrap 1
pack
end

TkButton.new do
text "Quit"
command "exit"
pack
end

Tk.mainloop

Hope, that helps.

Julian


Am 02.04.2007 um 10:55 schrieb Rosalind Mitchell:

> Rosalind Mitchell wrote:
>
>> I'm a newcomer to Ruby, though a seasoned campaigner in Perl, and I'm
>> finding my feet, so please be nice!
>>
>> I've been playing around with the Tk extension. The section on
>> Ruby Tk in
>> the pickaxe book is sketchy to say the least. I do have a well-
>> thumbed
>> copy of Learning Perl/Tk, so I know my way around the basics.
>>
>> My question is: is there any way in Ruby Tk to implement combo
>> boxes?
>> Neither BrowseEdit nor JComboBox seem to work.
>>
>> Rosie
>
> I'm a little surprised that nobody managed to come up with an
> answer to
> this.
>
> Is Tk really a hopeless case with Ruby? If it is, what alternative
> GUI
> manager would you suggest?
>
> Rosie
>
>
>


Morton Goldberg

4/3/2007 12:41:00 AM

0

On Apr 2, 2007, at 6:03 AM, Julian Schnidder wrote:

> In Brent B. Welsh's book "Practical Programming in Tcl and Tk" 4th
> ed. the index redirects "combobox" to "spinbox" (new in Tcl/Tk
> version 8.4 IIRC):
>
> require 'tk'
>
> TkSpinbox.new do
> from -2
> to 2
> pack
> end
>
> TkSpinbox.new do
> from -2
> to 2
> increment 0.1
> pack
> end
>
> TkSpinbox.new do
> @states=["Arizona", "California", "New Mexico"]
> values @states
> wrap 1
> pack
> end
>
> TkButton.new do
> text "Quit"
> command "exit"
> pack
> end
>
> Tk.mainloop
>
> Hope, that helps.
>
> Julian

That's an interesting example, but are spin boxes really the same as
combo boxes? The OP may also want to look at Tk::Iwidgets::Combobox.
Here is a minimal example.

<code>
require 'tk'
require 'tkextlib/iwidgets'

DEBUG = []
COLORS = %w[red green blue cyan yellow magenta black white]

begin
root = TkRoot.new {title 'Ruby/Tk Combo Box'}
cbx = Tk::Iwidgets::Combobox.new(root) {
labeltext "Colors:"
pack :pady => 10
}
cbx.insert_entry(0, COLORS.first)
COLORS.each { |color| cbx.insert_list('end', color) }
btn = TkButton.new do
text "Quit"
command { Tk.root.destroy }
pack
end

win_w, win_h = 300, 80
win_l = (TkWinfo.screenwidth('.') - win_w) / 2
root.geometry("#{win_w}x#{win_h}+#{win_l}+50")
root.resizable(false, false)

# Make Cmnd+Q work as expected on Mac OS X.
root.bind('Command-q') { Tk.root.destroy }

Tk.mainloop
ensure
puts DEBUG unless DEBUG.empty?
end
</code>

Regards, Morton



Hidetoshi NAGAI

4/3/2007 10:15:00 AM

0

Rosalind Mitchell

4/3/2007 10:34:00 AM

0

Morton Goldberg wrote:

> That's an interesting example, but are spin boxes really the same as
> combo boxes? The OP may also want to look at Tk::Iwidgets::Combobox.

Thank you - that seems to do the trick.

Rosie