crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Drop файлов на конкретный виджет.
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
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 - нету.


Весь проект:
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 5.7.2025, 3:24