crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Перемещение QTreeWidgetItem в QTreeWidget, (начинающий)
dimamix
  опции профиля:
сообщение 8.4.2011, 8:36
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 9
Регистрация: 8.4.2011
Пользователь №: 2582

Спасибо сказали: 0 раз(а)




Репутация:   0  


Добрый день.
Начал писать плагин на питоне для Qgis.
В качестве gui используется QT.
Отображением дерева проекта заведует объект QTreeWidget.
QTreeWidgetItem - являются некие объекты "GROUP" и "LAYER" и возникла необходимость в построении развесистого дерева из этих объектов.

конкретный вопрос:
как можно у уже созданного QTreeWidgetItem-а изменить родителя (перевесить на другую ветку)

зы
на С читаю, со словарем :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
abc
  опции профиля:
сообщение 8.4.2011, 11:10
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 221
Регистрация: 16.12.2010
Из: СПб
Пользователь №: 2272

Спасибо сказали: 26 раз(а)




Репутация:   4  


перемещение мышкой? даже не знаю
не мышкой что-то вроде этого:
QTreeWidgetItem * QTreeWidgetItem::takeChild ( int index )
и возвращённый указатель отправить в:
void QTreeWidgetItem::insertChild ( int index, QTreeWidgetItem * child )


Сообщение отредактировал abc - 8.4.2011, 11:11
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
dimamix
  опции профиля:
сообщение 8.4.2011, 12:23
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 9
Регистрация: 8.4.2011
Пользователь №: 2582

Спасибо сказали: 0 раз(а)




Репутация:   0  


Перемещение надо производить при помощи функций.

получилось переносить сложный объект layer между группами
при помощи
void QTreeWidgetItem::removeChild ( QTreeWidgetItem * child )
void QTreeWidgetItem::addChild ( QTreeWidgetItem * child )

group1.removeChild(currItem)
group2.addChild( currItem )


Пытался удалять из корня при помощи
void QTreeWidget::removeItemWidget ( QTreeWidgetItem * item, int column )

не получается...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
abc
  опции профиля:
сообщение 8.4.2011, 12:57
Сообщение #4


Участник
**

Группа: Участник
Сообщений: 221
Регистрация: 16.12.2010
Из: СПб
Пользователь №: 2272

Спасибо сказали: 26 раз(а)




Репутация:   4  


Цитата(dimamix @ 8.4.2011, 13:23) *
void QTreeWidget::removeItemWidget ( QTreeWidgetItem * item, int column )

в QTreeWidgetItem можно установить какой-нибудь виджет, вот его этот метод и удаляет, а не итему
итемы верхнего уровня (именно самого первого уровня) называются TopLevelItem
QTreeWidgetItem * QTreeWidget::takeTopLevelItem ( int index )
void QTreeWidget::addTopLevelItem ( QTreeWidgetItem * item )
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
dimamix
  опции профиля:
сообщение 8.4.2011, 13:35
Сообщение #5


Новичок


Группа: Новичок
Сообщений: 9
Регистрация: 8.4.2011
Пользователь №: 2582

Спасибо сказали: 0 раз(а)




Репутация:   0  


Спасибо. Все заработало!

currItem = self.legendTree.takeTopLevelItem( 0 )
# добавляем в нужную группу
group2.addChild( currItem )



Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 14.12.2019, 3:09