Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Alan от Ноябрь 15, 2005, 13:17



Название: QT 3.3.4 + WinXP: Удаление из ListVew?????
Отправлено: Alan от Ноябрь 15, 2005, 13:17
Имеется ListView в который затягиваю данные из БД.
данные в ListView имеют иерархическую двухуровневую структуру:

ListView:
 Таблица 1
       ...........Таблица 2
       ...........Таблица 2
        ...........Таблица 2
+Таблица 1
...

при выборе  строки в Таблице 2 нужно удолить эту строку из ListView, чтобы избежать повторного выбора.
Делаю так:
Код:

...
connect(ListView, SIGNAL(  returnPressed (QListViewItem *) ),this, SLOT(MySlot(QListViewItem *)) );
...
MySlot(QListViewItem *item)
{
   ...
   ListViewItem->removeItem(item);
   ...
}


После чего удаляется нужная строка и в т.ч.  удаляются ВСЕ нижеследующие строки.
 :?:  Как личить это безобразие?


Название: QT 3.3.4 + WinXP: Удаление из ListVew?????
Отправлено: Alan от Ноябрь 21, 2005, 11:04
... данный глюк наблюдается при удалении только вложенных узлов (Таблица 2). Корневые узлы удалаяются без проблем.


Название: Re: QT 3.3.4 + WinXP: Удаление из ListVew?????
Отправлено: comrade от Ноябрь 23, 2005, 12:21
Цитата: "Alan"
Код:

...
connect(ListView, SIGNAL(  returnPressed (QListViewItem *) ),this, SLOT(MySlot(QListViewItem *)) );
...
MySlot(QListViewItem *item)
{
   ...
   ListViewItem->removeItem(item); // ???
   ...
}



из этого кода не совсем понятно что такое  ListViewItem из которого ты пытаешься удалить item
если тебе надо при каждом нажатии enter удалять  строку  "Таблица 2" не трогая строки "Таблица 1"  попробуй так:

Код:

...
connect(ListView, SIGNAL(  returnPressed (QListViewItem *) ),this, SLOT(MySlot(QListViewItem *)) );
...
MySlot(QListViewItem *item)
{
    if ( item->depth() ) delete item;
}

или
Код:

MySlot(QListViewItem *item)
{
    delete item;
}

если надо всё подряд удалять


Название: QT 3.3.4 + WinXP: Удаление из ListVew?????
Отправлено: Alan от Ноябрь 23, 2005, 15:59
Спасибо comrade! Это то, что мне и нужно было. Все вроде заработало как и хотелось.   :)

--
часто оказывается все на много проще...