richard.j.dale@gmail.com
5/17/2007 3:53:00 PM
On May 17, 11:01 am, Stefano Crocco <stefano.cro...@alice.it> wrote:
> Alle gioved? 17 maggio 2007, Miquel ha scritto:
>
>
>
> > Hi there
>
> > I'm trying to code a Tree using ruby qt bindings (Qt v4.2.0 using
> > aboutQt() info).
>
> > This is my code.
>
> > @tree = Qt::TreeWidget.new(self)
> > self.setCentralWidget(@tree)
>
> > @rootItem = Qt::TreeWidgetItem.new(@tree)
> > @rootItem.setText(0, "Root")
>
> > 0.upto(10) do |index|
> > item = Qt::TreeWidgetItem.new(@rootItem)
> > item.setText(0, "Node#{index}")
> > end
>
> > The problem is in 'item = Qt::TreeWidgetItem.new(@rootItem)', system
> > tells me:
>
> > unresolved constructor call Qt::TreeWidgetItem (ArgumentError)
>
> > and reading Qt documentation there are two constructors allowed:
>
> > QTreeWidgetItem ( QTreeWidget * parent, int type = Type )
> > QTreeWidgetItem ( QTreeWidgetItem * parent, int type = Type )
>
> > The first one is used in the @rootNode object creation and the second
> > one is the one which produces this message.
>
> > Can anybody help me?
>
> > Thanks in advance
>
> > Best regards
>
> > Miquel
>
> It seems that you need to specify also the optional parameter. If you
> substitute the line
> item = Qt::TreeWidgetItem.new(@rootItem)
> with
> item = Qt::TreeWidgetItem.new(@rootItem, Qt::TreeWidgetItem::Type)
> it should work (at least, it does on my system, with qt 4.2.3).
I've found out what the problem is, and it's already fixed in the kde
svn version of QtRuby. Here is the entry from the ChangeLog:
2006-12-16 Richard Dale <rdale@xxxx>
* There is no way to distinguish between the two constructors:
QTreeWidgetItem (const QTreeWidgetItem & other)
QTreeWidgetItem (QTreeWidgetItem * parent, const QStringList &
strings, int type = Type)
when the latter has a single argument. So force the second variant
to
be called
-- Richard