Я пытаюсь сохранить изображение в буфер обмена, так что я написал код так:Копирование изображения в буфер обмена не работает на Linux
#!/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, если помогает).