QT Internal Drag & Drop QTreeWidget - PullRequest
       1

QT Internal Drag & Drop QTreeWidget

0 голосов
/ 04 октября 2019

У меня возникли проблемы с QTreeWidget и внутренним перемещением (перемещение элементов между узлами). Каждый раз, когда я пытаюсь переместить элемент в QTreeWidget, элемент исчезает. Событие

void CommonTreeWidget::dropEvent(QDropEvent *event)

запускается, но у элемента нет mimeData. Если я удаляю элемент из другого списка, у него есть mimeData, а внутри QTreeWidget - нет. Я думаю, что это проблема.

Функции выглядят следующим образом:

void CommonTreeWidget::dropEvent(QDropEvent *event)
{
  if (mProjectType == RuleManager::TYPE_PROJECT_EXPLORE)
    return;



  const QMimeData *mimeData = event->mimeData();

  if (mimeData->hasUrls()) {
    QList<QUrl> urlList = mimeData->urls();
    if (urlList.size() > 0) {
      QString url = urlList.at(0).path();
      //QString url = urlList.at(0).toString();
#ifdef Q_OS_WIN
      url = url.remove(0, 1);
#endif
      QModelIndex dropIndex = indexAt(event->pos());
      QDataItem *dropItem = (QDataItem*)dropIndex.internalPointer();
      setSelected(dropItem);
      //QString temp = mSelectedItem->text(0);
      QFileInfo entry(url);

      if (entry.isDir()) {
        InsertNode(url);
      } else if (entry.isFile()) {
        QDataItem *focusItem = InsertItem(url);
        setSelected(focusItem);
      }
    }
  }
  event->acceptProposedAction();

}

Есть ли какая-либо известная проблема с internalMove QTreeWidget или кто-нибудь знает хороший пример, где я могу исследовать?

Может быть полезно:macOS 10.14.5 QT 5.13.1 QTCreator 4.10.0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...