From: "richard.j.dale@..." Date: 2006-11-18T16:50:08+09:00 Subject: Re: qtruby and the ListViewItemIterator Vincent Fourmond wrote: > Nigel Wilkinson wrote: > > Hi folks > > > > I'm trying qtruby out and have struck an issue I can't conquer. > > > > I have a listview widget which is populated with listviewitems and want > > to iterate through the whole lot. > > > > The code snippet is > > > > it = Qt::ListViewItemIterator.new(@listView) > > puts it.operator++() > > > /mainform.ui.rb:33:in `method_missing': undefined method `operator' for > > # (NoMethodError) > > Well, the operator ++ is meant to be called directly ++ when written > in C++. In ruby, however, that won't work as ++ is not an operator. > You might want to try (untested): > > p it.send(:'++') No, that won't work. You need to use 'it += 1' instead in QtRuby: irb(main):002:0> lv = Qt::ListView.new => # irb(main):003:0> item1 = Qt::ListViewItem.new(lv) => # irb(main):004:0> item2 = Qt::ListViewItem.new(lv) => # irb(main):005:0> item3 = Qt::ListViewItem.new(lv) => # irb(main):006:0> it = Qt::ListViewItemIterator.new(lv) => # irb(main):007:0> it.current => # irb(main):008:0> it += 1 => # irb(main):009:0> it.current => # irb(main):010:0> it += 1 => # irb(main):011:0> it.current => # irb(main):012:0> it += 1 => # irb(main):013:0> it.current => nil -- Richard