pyqt生成一个复制文件的按钮代码
时间: 2024-01-04 08:44:06 浏览: 34
以下是一个简单的PyQt5代码示例,生成一个复制文件的按钮。
```
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QFileDialog
from shutil import copyfile
class App(QWidget):
def __init__(self):
super().__init__()
self.title = 'Copy File'
self.left = 200
self.top = 200
self.width = 400
self.height = 200
self.initUI()
def initUI(self):
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, self.width, self.height)
self.button = QPushButton('Select File', self)
self.button.move(150, 50)
self.button.clicked.connect(self.selectFile)
self.copy_button = QPushButton('Copy File', self)
self.copy_button.move(150, 100)
self.copy_button.setEnabled(False)
self.copy_button.clicked.connect(self.copyFile)
self.show()
def selectFile(self):
options = QFileDialog.Options()
options |= QFileDialog.DontUseNativeDialog
fileName, _ = QFileDialog.getOpenFileName(self,"QFileDialog.getOpenFileName()", "","All Files (*);;Python Files (*.py)", options=options)
if fileName:
self.selected_file = fileName
self.copy_button.setEnabled(True)
def copyFile(self):
dest_file, _ = QFileDialog.getSaveFileName(self, "Save As", "", "All Files (*);;Text Files (*.txt)")
copyfile(self.selected_file, dest_file)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
sys.exit(app.exec_())
```
在这个示例中,我们使用了PyQt5中的QWidget、QPushButton、QFileDialog和shutil库中的copyfile函数。我们创建了一个窗口,包含一个“Select File”按钮和一个“Copy File”按钮。当用户点击“Select File”按钮时,会弹出一个文件选择对话框,用户可以选择要复制的文件。一旦选择了文件,我们启用“Copy File”按钮,并将所选文件的路径存储在selected_file变量中。当用户单击“Copy File”按钮时,我们再次弹出文件对话框,让用户选择要将文件复制到的位置。然后,我们使用shutil的copyfile函数将所选文件复制到目标位置。