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读取剪切板内容-实现复制粘贴文本和图片的主要内容,如果未能解决你的问题,请参考以下文章