我编写了一个pyqt5代码来显示本地计算机上的图片或文件。在此之后,我不知道如何将窗口中显示的图片或文件保存到其他路径。我知道的唯一方法就是复制它们。如有任何建议或提示,将不胜感激
以下是显示图片或文件的代码:
import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
class fileDialogdemo(QWidget):
def __init__(self,parent=None):
super(fileDialogdemo, self).__init__(parent)
layout=QVBoxLayout()
self.btn=QPushButton("Load Picture")
self.btn.clicked.connect(self.getimage)
layout.addWidget(self.btn)
self.le=QLabel('')
layout.addWidget(self.le)
self.btn1=QPushButton('Load text file')
self.btn1.clicked.connect(self.getFiles)
layout.addWidget(self.btn1)
self.contents=QTextEdit()
layout.addWidget(self.contents)
self.setLayout(layout)
self.setWindowTitle('File Dialog ')
def getimage(self):
image_file,_=QFileDialog.getOpenFileName(self,'Open file','C:\\','Image files (*.jpg *.gif *.png *.jpeg)')
self.le.setPixmap(QPixmap(image_file))
def getFiles(self):
dig=QFileDialog()
dig.setFileMode(QFileDialog.AnyFile)
dig.setFilter(QDir.Files)
if dig.exec_():
filenames=dig.selectedFiles()
f=open(filenames[0],'r')
with f:
data=f.read()
self.contents.setText(data)
if __name__ == '__main__':
app=QApplication(sys.argv)
ex=fileDialogdemo()
ex.show()
sys.exit(app.exec_())
下面是我正在尝试保存的代码,但有一些错误:
def contextMenuEvent(self, event):
cmenu = QMenu(self)
saveAct = cmenu.addAction("Save as")
action = cmenu.exec_(self.mapToGlobal(event.pos()))
if action == saveAct:
filename = QFileDialog.getSaveFileName(self)
shutil.copyfile(self.image_file, filename)
除了复制的想法,还有更好的方法吗
请勿复制图像,因为没有人保证加载图像后原始图像位于同一位置或仍然存在。相反,从QLabel检索QPixmap并保存它:
相关问题 更多 >
编程相关推荐