Python 复制到剪贴板的图像不';不能在Linux上持久
我正在尝试将图像保存到系统剪贴板,因此我编写了如下代码:Python 复制到剪贴板的图像不';不能在Linux上持久,python,pyqt,clipboard,pyqt5,qimage,Python,Pyqt,Clipboard,Pyqt5,Qimage,我正在尝试将图像保存到系统剪贴板,因此我编写了如下代码: #!/usr/bin/python3 from PyQt5.Qt import QApplication from PyQt5.QtWidgets import QWidget, QPushButton from PyQt5.Qt import QImage import sys class MyWidget(QWidget): def __init__(self): super(MyWidget, self
#!/usr/bin/python3
from PyQt5.Qt import QApplication
from PyQt5.QtWidgets import QWidget, QPushButton
from PyQt5.Qt import QImage
import sys
class MyWidget(QWidget):
def __init__(self):
super(MyWidget, self).__init__()
self.button = QPushButton(self)
self.button.clicked.connect(self.copyPicToClip)
def copyPicToClip(self):
image = QImage('./test.jpg')
QApplication.clipboard().setImage(image)
self.close()
if __name__ == '__main__':
a = QApplication(sys.argv)
myW = MyWidget()
myW.show()
a.exec()
遗憾的是,我发现它根本不起作用。然后我试图找到一个解决办法。我尝试的第一件事是:
def copyPicToClip(self):
image = QImage('./test.jpg')
QApplication.clipboard().setImage(image)
# self.close()
在这之后,我才发现它工作了,但窗口并没有自动关闭
然后我尝试复制文本:
#!/usr/bin/python3
from PyQt5.Qt import QApplication, QClipboard
from PyQt5.QtWidgets import QWidget, QPushButton
from PyQt5.Qt import QImage
import sys
class MyWidget(QWidget):
def __init__(self):
super(MyWidget, self).__init__()
self.button = QPushButton(self)
self.button.clicked.connect(self.copyPicToClip)
QApplication.clipboard().dataChanged.connect(self.testFunc)
def copyPicToClip(self):
image = QImage('./test.jpg')
QApplication.clipboard().setImage(image)
def testFunc(self):
print('Here')
self.close()
if __name__ == '__main__':
a = QApplication(sys.argv)
myW = MyWidget()
myW.show()
a.exec()
不幸的是,它又失败了
因此,如果我提前关闭应用程序,图像将不会保存到剪贴板。但我想在将图像复制到剪贴板后关闭它
有什么建议吗
(PyQt5,ubuntu 16.10,如果有帮助的话)。不幸的是,这在Linux上是“正常”行为。默认情况下,应用程序关闭时不会保留剪贴板数据。解决此问题的通常方法是安装剪贴板管理器。有关Ubuntu的更多详细信息,请参阅本wiki文章:
- Ubuntu维基: