Matcha芥末酱 2023-10-11 20:45 采纳率: 37.5%
浏览 20
已结题

获取剪切板图片的格式问题


QClipboard *clipboard;
 clipboard=QGuiApplication::clipboard();
const QMimeData *mimeData =clipboard->mimeData();
qDebug()<<mimeData->formats()<<Qt::endl;

上面代码得出的结果是

img


没有"image/jpg"类型的,全是application/x-qt-windows-mime类型的,有相关博客内容

img


并不能解决问题,我就想知道这么多application/x-qt-windows-mime类型的数据怎么操作,我只是想得到剪切板的图片

img


看人家的代码跟我的没什么区别,但是人家mimeData->hasImage()的值就是1,代表获取到了"image/png"类型的数据,所以我这种情况有谁遇到过吗?这么多application/x-qt-windows-mime类型的数据怎么操作?chat-gpt回答勿扰。

if(mimeData->hasImage())
        {
            //将图片数据转为QImage
            QImage img = qvariant_cast<QImage>(mimeData->imageData());
            qDebug()<<"has image"<<Qt::endl;

        }else if(mimeData->hasText()){
            qDebug()<<mimeData->text()<<Qt::endl
                 <<" clipboard is empty";
        }


接上面代码,这段代码运行不会运行第一个if,直接到第二个else if,足以说明没有"image"格式的,
所以如果复制图片,结果mimeData没有图片格式的数据怎么回事。

  • 写回答

11条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-10-11 20:47
    关注

    引自强大而免费的微信小程序:皆我百晓生。如有帮助,还望采纳。


    根据您提供的代码和描述,主要问题在于您没有正确获取剪切板中的图片数据。在调用mimeData()函数时,您实际上是创建了一个新的QMimeData对象并将其赋值给了mimeData指针,导致丢失剪切板中的数据。

    要获取剪切板中的图片数据,您可以使用以下代码:

    QClipboard *clipboard = QGuiApplication::clipboard();
    const QMimeData *mimeData = clipboard->mimeData();
    
    if (mimeData->hasImage()) {
        QImage image = qvariant_cast<QImage>(mimeData->imageData());
        // 在这里处理获取到的图片数据(image)
    }
    

    通过mimeData->hasImage()判断剪切板中是否存在图片数据,如果存在则使用qvariant_cast<QImage>(mimeData->imageData())获取图片数据并进行操作。

    至于那些application/x-qt-windows-mime类型的数据,是Qt框架自带的用于在不同平台之间传输剪切板数据的标准格式,您一般不需要手动处理。在您需要处理其他类型的数据时,可以使用mimeData->data(format)来获取相应格式的数据,并进行解析和处理。

    希望对您有所帮助!

    评论

报告相同问题?

问题事件

  • 系统已结题 10月19日
  • 修改了问题 10月11日
  • 修改了问题 10月11日
  • 创建了问题 10月11日

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀