Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
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) Link 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 ) |
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 27.12.2025, 2:39 |