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

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

Форум на CrossPlatform.RU _ Qt GUI _ Drop файлов на конкретный виджет.

Автор: RazrFalcon 30.8.2011, 20:39

Пытаюсь сделать drag&drop файлов из файлового менеджера на виджет (в моем случае QTreeWidget).

Если предопределить:

protected:
  virtual void dragEnterEvent(QDragEnterEvent *);
  virtual void dropEvent(QDropEvent *);
Для всего окна (ака QMainWindow), то все работает. А для виджета - уже не срабатывает.

Пример класса наследника QTreeWidget:
.h
Раскрывающийся текст
#ifndef TREEWIDGET_H
#define TREEWIDGET_H

#include <QTreeWidget>
#include <QDragEnterEvent>
#include <QDropEvent>

class TreeWidget : public QTreeWidget
{
  Q_OBJECT
public:
  explicit TreeWidget(QWidget *parent = 0);

signals:

public slots:

protected:
  virtual void dragEnterEvent(QDragEnterEvent *);
  virtual void dropEvent(QDropEvent *);

};

#endif // TREEWIDGET_H


.cpp
Раскрывающийся текст
#include <QtDebug>

#include "treewidget.h"

TreeWidget::TreeWidget(QWidget *parent) :
    QTreeWidget(parent)
{
  setAcceptDrops(true);
}

void TreeWidget::dragEnterEvent(QDragEnterEvent *event)
{
  event->acceptProposedAction();
  qDebug()<<"drag";
}

void TreeWidget::dropEvent(QDropEvent *event)
{
  qDebug()<<"drop";
  event->acceptProposedAction();
}

drag проходит, а drop - нету.


Весь проект:

 drop.zip ( 2.29 килобайт ) : 60
 

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