2012-01-30 56 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中打開圖像並將其拖到文本編輯上的確行得通。試試:)