[英]Copy multiple images to clipboard
我在一个文件夹中有多个 JPG 文件。 我想将它们全部复制到一个 go 中的剪贴板,所以当我按下ctrl + v时,我可以粘贴它们。
Shutil 会将文件从 dict 复制到 dict:
from PyQt6 import QtCore, QtGui
for _ in range(10):
app = QtGui.QGuiApplication([])
data = QtCore.QMimeData()
url = QtCore.QUrl.fromLocalFile(full_file_name)
data.setUrls([url])
app.clipboard().setMimeData(data)
此代码只会将一个随机图像从我设置的路径复制到剪贴板。 如果我遍历所有文件,它会崩溃。
OP 的问题(如图所示)是他正在创建几个 QGuiApplications 并且无法完成,因为它是 singleton。
解决方法是在for循环之前创建一个QGuiAplication,然后通过static方法QGuiApplication.clipboard()
访问:
import os
from PyQt6 import QtCore, QtGui
path = os.getcwd()
urls = []
it = QtCore.QDirIterator(path, ("*.jpg",), QtCore.QDir.Filters.Files)
while it.hasNext():
url = QtCore.QUrl.fromLocalFile(it.next())
urls.append(url)
if QtGui.QGuiApplication.instance() is None:
app = QtGui.QGuiApplication([])
data = QtCore.QMimeData()
data.setUrls(urls)
QtGui.QGuiApplication.clipboard().setMimeData(data)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.