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
Alle martedì 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 = 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
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()
Stefano
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