1

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

コンテキストコンテキストコンテキストコンテキストコンテキストコンテキストコンテキストコンテキストコンテキストコンテキストコンテキストコンテキストコンテキストコンテキストコンテキストコンテキストコンテキストコンテキストコンテキストコンテキストコンテキストコンテキストコンテキストコンテキストコンテキストコンテキストコンテキストコンテキストコンテキスト

4

1 に答える 1

1

これは、画像をドラッグしているアプリケーションと、そのアプリケーションが操作に含めることを決定したデータによって異なります。それが機能しない場合は、ドロップするものに画像データが含まれておらず、おそらくURLまたはファイルパスのみが含まれているためです。

Windows 7でファイルエクスプローラーから画像をドラッグすることは少なくとも機能しませんが、Firefoxの最新バージョンで画像を開き、それをテキスト編集にドラッグすることは機能します。それを試してみてください :)

于 2012-01-30T01:54:38.267 に答える