Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Обработка XML _ QTreeWidget внутреннее перетаскивание. XML переподчинение элемента.

Автор: Sergo 3.8.2009, 15:05

Использую PyQT 4.4.2, изучаю недавно. Есть дерево. Структура хранится в xml-файле. Очень нравится как библиотека штатно обрабатывает перетаскивание, и менять функционал не хочется. Но есть пара вопросов:
1. После вставки надо изменить xml документ. Куда надо вклиниться, чтобы отловить момент, когда библиотека отработала вставку, чтобы добавить свой кусок кода?
2. Как в xml документе переподчинить елемент? Или надо делать клон, удалять старый элемент, потом вставлять клон куда надо?
Всем заранее спасибо.

Автор: Litkevich Yuriy 3.8.2009, 15:28

Цитата(Sergo @ 3.8.2009, 19:05) *
Есть дерево.
представление (*View) или виджет (*Widget)?

Автор: Sergo 3.8.2009, 16:28

виджет (*Widget)

Автор: SABROG 3.8.2009, 19:59

Цитата(Sergo @ 3.8.2009, 16:05) *
1. После вставки надо изменить xml документ. Куда надо вклиниться, чтобы отловить момент, когда библиотека отработала вставку, чтобы добавить свой кусок кода?

Возможно надо переопределить метод void QAbstractItemView::dropEvent ( QDropEvent * event ) [virtual protected]

Цитата(Sergo @ 3.8.2009, 16:05) *
Как в xml документе переподчинить елемент? Или надо делать клон, удалять старый элемент, потом вставлять клон куда надо?
Всем заранее спасибо.


Думаю зависит от парсера, которым ты пользуешься.

Автор: Sergo 10.8.2009, 16:15

Разобрался. Если кому интересно.
Ответ на 1. вопрос:

def dropEvent(self, event):
     QtGui.QTreeWidget.dropEvent(self, event)

Ответ на 2. вопрос:
QDomNode.insertAfter и QDomNode.insertBefore сами переподчиняют ветку

Всем спасибо. Тема закрыта.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)