Перемещение QTreeWidgetItem в QTreeWidget, (начинающий) |
Здравствуйте, гость ( Вход | Регистрация )
Перемещение 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 |
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 ) |
|
|
Текстовая версия | Сейчас: 29.11.2024, 16:02 |