Qt实现 复制内容到剪贴板(文件,图片,文本)
QClipboard类提供对窗口系统剪贴板的访问。剪贴板提供了在应用程序之间复制和粘贴数据的简单机制。通过QClipboard提供的一些函数可以实现复制文字复制图片、文件的操作。以下是对这些操作的接口使用复制文本通过setText(const QString text, Mode mode Clipboard)函数设置它表示将文本作为纯文本复制到剪贴板中mode参数用于控制使用系统剪贴板的哪一部分。默认Clipboard。如果mode为QClipboard::Clipboard文本存储在全局剪贴板中。如果mode为QClipboard::Selection文本存储在全局鼠标选择中。如果mode为QClipboard::FindBuffer文本存储在搜索字符串缓冲区中macOS上使用。通常我们只使用QClipboard::Clipboard。void Widget::on_pushButton_clicked() { QClipboard *clip QApplication::clipboard(); clip-setText(hello qt); }复制图片setPixmap(const QPixmap pixmap, Mode mode Clipboard)表示复制QPixmap到剪贴板。比setImage()慢因为它需要首先将QPixmap转换为QImage这是一个耗时操作。void MainWindow::on_pushButton_clicked() { //复制图像可粘贴到画图中 QImage *imagenew QImage(); image-load(G:/Qt_coding/clipboard/test.png); QClipboard *clipQApplication::clipboard(); clip-setPixmap(QPixmap::fromImage(*image)); //clip-setImage(*image); }复制文件setMimeData(QMimeData *src, Mode mode Clipboard)表示将剪贴板数据设置为QMimeData数据QMimeData支持文本、html、图片、文件等。void MainWindow::on_pushButton_clicked() { QListQUrl copyfile; QUrl urlQUrl::fromLocalFile(G:\\test.txt); //待复制的文件 if(url.isValid()){ copyfile.push_back(url); }else{ return; } QMimeData *datanew QMimeData; data-setUrls(copyfile); QClipboard *clipQApplication::clipboard(); clip-setMimeData(data); }人生苦短总结不易如果这篇文章可以帮助到你请轻轻移动一下鼠标把它顶赞起来分享给更多的需要的伙伴。