QTextEdit 不工作

发布于 2024-12-29 16:53:37 字数 1918 浏览 4 评论 0原文

为什么在这个 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");
    }
}
};

context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context

Why doesn't drag and drop pictures work on this QTextEdit? I have tried everything.

here is the class 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");
    }
}
};

context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

谁的新欢旧爱 2025-01-05 16:53:37

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

从 Windows 7 下的文件资源管理器中拖动图像对我来说至少不起作用,但在最新版本的 Firefox 中打开图像并将其拖动到文本编辑中确实有效。尝试一下:)

It depends on what application you are dragging the images from and what data that application decides to include in the operation. If it is not working for you, it is because whatever you are dropping contains no image data and probably only contains a URL or file path.

Dragging images from the file explorer under Windows 7 for me at least does not work but opening an image in the latest version of Firefox and dragging that onto the text edit does work. Try it :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文