2012-01-30 7 views
1

왜이 QTextEdit에서 사진을 드래그 앤 드롭하지 않습니까? 나는 모든 것을 시도했다. 여기 QTextEdit가 작동하지 않습니다.

는 클래스 텍스트 편집기입니다 :

//textedit 
class TextEdit : public QTextEdit 
{ 
Q_OBJECT 
public: 




TextEdit(QWidget*parent) : QTextEdit(parent) 
{ 
    this->setAcceptDrops(true); 
} 


virtual void dragEnterEvent(QDragEnterEvent *e) 
{ 
    e->accept(); 
    //QTextEdit::dragEnterEvent(e); 
} 

virtual void dragLeaveEvent(QDragLeaveEvent *e) 
{ 
    e->accept(); 
    //QTextEdit::dragLeaveEvent(e); 
} 
// 
virtual void dragMoveEvent(QDragMoveEvent *e) 
{ 
    e->accept(); 
    // QTextEdit::dragMoveEvent(e); 
} 

virtual void dropEvent(QDropEvent *e) 
{ 
    QTextEdit::dropEvent(e); 
} 

bool canInsertFromMimeData(const QMimeData *source) const 
{ 
    if (source->hasImage()) 
     return true; 
    else 
     return QTextEdit::canInsertFromMimeData(source); 
} 


void insertFromMimeData(const QMimeData *source) 
{ 
    if (source->hasImage()) 
    { 
     QImage image = qvariant_cast<QImage>(source->imageData()); 
     QTextCursor cursor = this->textCursor(); 
     QTextDocument *document = this->document(); 
     document->addResource(QTextDocument::ImageResource, QUrl("image"), image); 
     cursor.insertImage("image"); 
    } 
} 
}; 

컨텍스트 컨텍스트 컨텍스트 컨텍스트 컨텍스트 컨텍스트 컨텍스트 컨텍스트 컨텍스트 컨텍스트 컨텍스트 컨텍스트 컨텍스트 컨텍스트 컨텍스트 컨텍스트 컨텍스트 컨텍스트 컨텍스트 컨텍스트 컨텍스트 컨텍스트 컨텍스트 컨텍스트 컨텍스트 컨텍스트 컨텍스트 컨텍스트 컨텍스트 컨텍스트 컨텍스트 컨텍스트

답변

1

이미지를 드래그하는 응용 프로그램과 응용 프로그램에서 작업에 포함시킬 데이터를 결정합니다. 그것이 당신을 위해 일하지 않는다면, 당신이 떨어 뜨리고있는 것은 무엇이든 이미지 데이터를 포함하지 않고 URL이나 파일 경로만을 포함하기 때문입니다.

최소한 Windows 7의 파일 탐색기에서 이미지를 드래그하는 것은 작동하지 않지만 최신 버전의 Firefox에서 이미지를 열고 텍스트 편집으로 드래그하면 효과가 있습니다. 사용해보기 :