[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

Problem with StringList object in Ruby/Qt4

Rosalind Mitchell

1/15/2008 8:05:00 PM

I'm experimenting with building Ruby applications with Qt4 GUI interfaces.

While most of it is going easily - I like using Qt4 more than most GUI
tools - I seem to have run into a problem with Qt::StringList objects.

I can reduce this to a bare minimum script that produces the exception:

-----------------------------------------------------------------------
#!/usr/bin/ruby -wKU

require 'Qt4'

class ListForm < Qt::Widget
def initialize
super()

model = Qt::StringListModel.new()
list = Qt::StringList.new()

end
end

app = Qt::Application.new(ARGV)

test_form = ListForm.new()
test_form.show()

app.exec()
-----------------------------------------------------------------------

When I run this, the output is:

$ ruby slist.rb
slist.rb:10:in `const_missing': uninitialized constant Qt::StringList
(NameError)
from slist.rb:10:in `initialize'
from slist.rb:19:in `new'
from slist.rb:19
-----------------------------------------------------------------------

I'm sure I'm missing something simple here, I just can't see what. Any
thoughts?

Oh yes: Ruby 1.8.6 / Qt 4.3 / Ubuntu 7.10

Rosie


2 Answers

Stefano Crocco

1/15/2008 8:59:00 PM

0

Alle marted=EC 15 gennaio 2008, Rosalind Mitchell ha scritto:
> I'm experimenting with building Ruby applications with Qt4 GUI interfaces.
>
> While most of it is going easily - I like using Qt4 more than most GUI
> tools - I seem to have run into a problem with Qt::StringList objects.
>
> I can reduce this to a bare minimum script that produces the exception:
>
> -----------------------------------------------------------------------
> #!/usr/bin/ruby -wKU
>
> require 'Qt4'
>
> class ListForm < Qt::Widget
> def initialize
> super()
>
> model =3D Qt::StringListModel.new()
> list =3D Qt::StringList.new()
>
> end
> end
>
> app =3D Qt::Application.new(ARGV)
>
> test_form =3D ListForm.new()
> test_form.show()
>
> app.exec()
> -----------------------------------------------------------------------
>
> When I run this, the output is:
>
> $ ruby slist.rb
> slist.rb:10:in `const_missing': uninitialized constant Qt::StringList
> (NameError)
> from slist.rb:10:in `initialize'
> from slist.rb:19:in `new'
> from slist.rb:19
> -----------------------------------------------------------------------
>
> I'm sure I'm missing something simple here, I just can't see what. Any
> thoughts?
>
> Oh yes: Ruby 1.8.6 / Qt 4.3 / Ubuntu 7.10
>
> Rosie

I think this happens because QtRuby uses ruby lists instead of most (if not=
=20
all) of the Qt containers. Try doing

list =3D []

instead of=20

list =3D Qt::StringList.new()

Stefano

Rosalind Mitchell

1/16/2008 1:50:00 PM

0

Stefano Crocco wrote:

> I think this happens because QtRuby uses ruby lists instead of most (if
> not all) of the Qt containers. Try doing
>
> list = []
>
> instead of
>
> list = Qt::StringList.new()

That seems to be it. Thank you, Srefano!

Rosie