2012-01-30 4 views
1

Pourquoi le glisser-déposer ne fonctionne-t-il pas sur ce QTextEdit? J'ai tout essayé.QTextEdit ne fonctionne pas

ici est la classe TextEdit:

//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"); 
    } 
} 
}; 

contexte contexte contexte contexte contexte contexte contexte contexte contexte contexte contexte contexte contexte contexte contexte contexte contexte contexte contexte contexte contexte contexte contexte contexte contexte contexte contexte de contexte de contexte de contexte de contexte de contexte

Répondre

1

Cela dépend de l'application à partir de laquelle vous faites glisser les images et des données que cette application décide d'inclure dans l'opération. Si cela ne fonctionne pas pour vous, c'est que tout ce que vous supprimez ne contient aucune donnée d'image et ne contient probablement qu'une URL ou un chemin de fichier. Le fait de faire glisser des images de l'explorateur de fichiers sous Windows 7 pour moi au moins ne fonctionne pas, mais l'ouverture d'une image dans la dernière version de Firefox et le glisser sur l'édition de texte fonctionne. Essayez-le :)