From: Stefano Crocco Date: 2007-05-17T20:00:11+09:00 Subject: Re: TreeWidgetItem problem Alle gioved� 17 maggio 2007, Miquel ha scritto: > En/na Stefano Crocco ha escrit: > > 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 hope this helps > > > > Stefano > > Hey, it is :-D !!!!!! but...Why isn't it necessary in the root node > creation (the constructor have the same optional parameter)? > > Thanks > > > Miquel Looking at the Korudum forum (http://rubyforge.org/forum/forum.php?forum_id=723), it seems there are some situations in which QtRuby fails to correctly resolve overloaded methods. In this case, the constructor which takes a Qt::ListWidget is resolved correctly, the other isn't. A similar situation occurred me using Qt::MessageBox.question. Although the documentation says the buttons and defaultButton parameters are optional, the method call failed in ruby unless they were both specified. Another example is mentioned on this thread of the Korundum forum: http://rubyforge.org/forum/message.php?msg_id=15576 Stefano