QTextEdit不起作用

时间:2012-01-30 00:23:19

标签: qt drag-and-drop qimage qurl

为什么不在此QTextEdit上拖放图片?我尝试了一切。

这是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");
    }
}
};
上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文

1 个答案:

答案 0 :(得分:1)

这取决于您从哪个应用程序拖动图像以及应用程序决定在操作中包含哪些数据。如果它不适合您,那是因为您丢弃的内容不包含任何图像数据,并且可能只包含URL或文件路径。

至少在Windows 7下从文件浏览器中拖动图像至少不起作用,但在最新版本的Firefox中打开图像并将其拖到文本编辑中确实有效。试试吧:))