class MainWin2(QMainWindow): def __init__(self): super(self.__class__, self).__init__() self.ui = Ui_MainWindow() self.ui.setupUi(self) self.ui.button_upload.clicked.connect(self.on_button_upload_clicked_1) self.ui.button_browse.clicked.connect(self.on_button_browse_clicked_1) self.ui.button_del.clicked.connect(self.on_button_del_clicked_1) self.ui.radio_width.toggled.connect(self.on_radio_width_toggled) self.ui.radio_height.toggled.connect(self.on_radio_height_toggled) self.ui.radio_both.toggled.connect(self.on_radio_both_toggled) self.ui.radio_noscale.toggled.connect(self.on_radio_dontscale_toggled) self.show() self.nam = 0 self.rep = 0 self.req = 0 self.f = 0 self.filecount = 0 def dragEnterEvent(self, e): if e.mimeData().hasUrls(): e.accept() def dropEvent(self, e): for item in e.mimeData().urls(): self.ui.listWidget.addItem(item.toLocalFile()) if self.ui.check_autostart.isChecked(): self.on_button_upload_clicked_1() def on_button_upload_clicked_1(self): self.filecount = self.ui.listWidget.count() self.processfile(0) def on_button_del_clicked_1(self): list = self.ui.listWidget.selectedItems() for item in list: self.ui.listWidget.takeItem(self.ui.listWidget.row(item)) def on_button_browse_clicked_1(self): list = QFileDialog.getOpenFileNames() for item in list[0]: self.ui.listWidget.addItem(QListWidgetItem(item)) def on_radio_width_toggled(self): self.ui.spin_width.setEnabled(True) self.ui.spin_height.setEnabled(False) def on_radio_height_toggled(self): self.ui.spin_width.setEnabled(False) self.ui.spin_height.setEnabled(True) def on_radio_both_toggled(self): self.ui.spin_width.setEnabled(True) self.ui.spin_height.setEnabled(True) def on_radio_dontscale_toggled(self): self.ui.spin_width.setEnabled(False) self.ui.spin_height.setEnabled(False) def processfile(self, i): print("processfile_start " + str(self.filecount - self.ui.listWidget.count())) if self.ui.listWidget.count() == 0: return file = str(self.ui.listWidget.item(i).text()) image = QImage(file) if self.ui.radio_noscale.isChecked(): pass elif self.ui.radio_both.isChecked(): image = image.scaled(self.ui.spin_width.value(), self.ui.spin_height.value(), Qt.IgnoreAspectRatio, Qt.SmoothTransformation) elif self.ui.radio_width.isChecked(): w = self.ui.spin_width.value() image = image.scaledToWidth(w, Qt.KeepAspectRatio, Qt.SmoothTransformation) elif self.ui.radio_height.isChecked(): h = self.ui.spin_height.value() image = image.scaledToHeight(h, Qt.KeepAspectRatio, Qt.SmoothTransformation) self.f = QTemporaryFile() self.f.open() image.save(self.f, 'JPG') self.f.seek(0) url = QUrl("ftp://" + self.ui.line_host.text() + "/" + self.ui.line_dir.text() + "/" + self.ui.line_prefix.text() + str(self.ui.spin_start_num.value()) + self.ui.line_suffix.text()) url.setUserName(self.ui.line_user.text()) url.setPassword(self.ui.line_pass.text()) url.setPort(self.ui.spin_port.value()) try: self.ui.listWidget.takeItem(0) self.ui.spin_start_num.setValue(self.ui.spin_start_num.value() + 1) self.nam = QNetworkAccessManager() self.rep = self.nam.put(QNetworkRequest(url), self.f) self.rep.finished.connect(self.isfinished) self.rep.error.connect(self.getError) if self.filecount != 0: self.progress = int( (self.filecount - self.ui.listWidget.count()) / (0.01 * self.filecount)) self.ui.progressBar.setValue(self.progress) except Exception as e: print("Exception " + str(e)) print("end") def getError(self): print("error") def isfinished(self): print("finished") self.f.close() self.processfile(0)