Russian Qt Forum

Qt => Общие вопросы => Тема начата: DiamondRain от Октябрь 27, 2010, 17:17



Название: QTreeWidget. Программа вылетает при клике на QTreeWidget.
Отправлено: DiamondRain от Октябрь 27, 2010, 17:17
Есть QTreeWidget. При клике на элемент дерева срабатывает стандартный сигнал itemClicked, который я обрабатываю и вызываю метод showNewPhoto. После запуска программы при клике на QTreeWidgetItem программа закрывается.

Код:

Код:
AlbumContentDialog::AlbumContentDialog(QWidget *parent) :
    QWidget(parent)
{
    setupUi(this);
   QObject::connect(photosTreeWidget, SIGNAL(itemClicked(QTreeWidgetItem*,int)),
                     this, SLOT(showNewPhoto(QTreeWidgetItem*,int)));
}

void AlbumContentDialog::showNewPhoto(QTreeWidgetItem* item, int level)
{
    QMutableListIterator<Photo> i(photoList);
    while(i.hasNext()) {
        if (i.next().title() == item->text(level)) {
            photoView->setText("<img src = "+i.next().path()+">");
        }
    }
}


Название: Re: QTreeWidget. Программа вылетает при клике на QTreeWidget.
Отправлено: Kolobok от Октябрь 27, 2010, 17:27
Зачем два раза i.next() зовешь?


Название: Re: QTreeWidget. Программа вылетает при клике на QTreeWidget.
Отправлено: DiamondRain от Октябрь 27, 2010, 17:37
Выходит, что i.next() в условии if и в photoView->setText() - это два разных объекта?


Название: Re: QTreeWidget. Программа вылетает при клике на QTreeWidget.
Отправлено: Makss от Октябрь 27, 2010, 17:43
да!