QT读取剪切板内容-实现复制粘贴文本和图片

Posted DS小龙哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT读取剪切板内容-实现复制粘贴文本和图片相关的知识,希望对你有一定的参考价值。

1. 前言

很多软件都支持从剪切板里粘贴图片、文字数据到指定位置,比如:QQ、微信可以直接从剪切板粘贴图片、文字进行发送消息。这个功能QT里实现也很方便,接口QT都提供了。

来至QT帮助文档的介绍:

使用剪切板功能需要加入的头文件:

#include <QClipboard>
#include <QApplication>
#include <QMimeData>

2. 实现代码

2.1 从剪切板获取图片

从剪切板里获取图片,转为QImage,然后在窗口上绘制出来,效果上面图片里贴了。

//粘贴图片
void Widget::on_pushButton_4_clicked()

    QClipboard *clipboard = QApplication::clipboard();
    const QMimeData *mimeData = clipboard->mimeData();
    if (mimeData->hasImage())
    
        //将图片数据转为QImage
        QImage img = qvariant_cast<QImage>(mimeData->imageData());
        if(!img.isNull())
        
           //绘制显示图片
           ui->widget->SetImage(img);
        
    

2.2 给剪切板设置图片

将软件内的图片赋值给剪切板,方便粘贴到其他地方。

//复制图片
void Widget::on_pushButton_3_clicked()

    QString filename=QFileDialog::getOpenFileName(this,"选择图片","C:/",tr("*.bmp *.jpg *.png"));
    //filename==选择文件的绝对路径

    if(!filename.isEmpty())
    
        QClipboard *clipboard = QApplication::clipboard();
        clipboard->setImage(QImage(filename));
    

2.3 从剪切板获取文本

void Widget::on_pushButton_2_clicked()

    QClipboard *clipboard = QApplication::clipboard();
    QString text=clipboard->text();
    ui->plainTextEdit->setPlainText(text);

2.4 给剪切板设置文本

void Widget::on_pushButton_clicked()

    QClipboard *clipboard = QApplication::clipboard();
    clipboard->setText("hello,我是QT复制到剪切板的文本.");

以上是关于QT读取剪切板内容-实现复制粘贴文本和图片的主要内容,如果未能解决你的问题,请参考以下文章

vim 全选并复制到系统剪切板

js 如何实现将div内的内容放到剪切板?

JS获取剪切板内容

C#复制图文信息到剪切板再粘贴到word

用js实现图片复制到剪切板的功能,兼容各种浏览器,例如IE,火狐、chome等。

clipboard.js-复制文本到粘贴板