QTextEdit不工作

QTextEdit不工作,qt,drag-and-drop,qimage,qurl,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)

为什么拖放图片不能在此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");
    }
}
};
//文本编辑
类TextEdit:公共QTextEdit
{
Q_对象
公众:
文本编辑(QWidget*父项):QTextEdit(父项)
{
此->setAcceptDrops(true);
}
虚拟无效dragEnterEvent(QDragEnterEvent*e)
{
e->accept();
//qtexdit::dragEnterEvent(e);
}
虚拟无效dragLeaveEvent(QDragLeaveEvent*e)
{
e->accept();
//QTextEdit::dragLeaveEvent(e);
}
//
虚拟无效dragMoveEvent(QDragMoveEvent*e)
{
e->accept();
//QTextEdit::dragMoveEvent(e);
}
虚拟void dropEvent(qdropent*e)
{
QTextEdit::dropEvent(e);
}
布尔CANINSERTFOMIMEDATA(常量QMimeData*源)常量
{
如果(源->hasImage())
返回true;
其他的
返回QTextEdit::canInsertFromMimeData(源);
}
void insertFromMimeData(常量QMimeData*源)
{
如果(源->hasImage())
{
QImage image=qvariant_cast(源->图像数据());
QTextCursor=this->textCursor();
QTextDocument*document=此->文档();
文档->添加资源(QTextDocument::ImageResource,QUrl(“图像”),图像);
光标。插入图像(“图像”);
}
}
};

上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文上下文应用程序决定包含在操作中。如果它不适合您,那是因为您正在删除的内容不包含任何图像数据,可能只包含URL或文件路径


从Windows7下的文件资源管理器中拖动图像至少不起作用,但在最新版本的Firefox中打开图像并将其拖动到文本编辑上确实起作用。试试看:)

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

从Windows7下的文件资源管理器中拖动图像至少不起作用,但在最新版本的Firefox中打开图像并将其拖动到文本编辑上确实起作用。试试看:)