您的位置:首页 > 编程语言 > Qt开发

【PyQt4 实例22】实现ftp的上传和下载(下)

2014-10-11 16:19 387 查看
def slotLogin(self):
serverAddress = self.LineEditServer.text()
if serverAddress.isEmpty():
QMessageBox.warning(self,self.tr("error"),self.tr("Please input server address!"))
return
userName = self.LineEditUser.text()
if userName.isEmpty():
QMessageBox.warning(self,self.tr("error"),self.tr("Please input user name!"))
return
password = self.LineEditPassword.text()
if password.isEmpty():
QMessageBox.warning(self,self.tr("error"),self.tr("Please input Passwrod!"))
return
self.ftpClient = QFtp()
self.ftpClient.connectToHost(serverAddress)

self.connect(self.ftpClient,SIGNAL("stateChanged(int)"),self.slotStateChanged)
self.connect(self.ftpClient,SIGNAL("done(bool)"),self.slotDone)

self.ftpClient.login(userName,password)
self.curStatus =  "LOGIN"

def slotStateChanged(self,state):
if state == QFtp.LoggedIn:
self.PushButtonPut.setEnabled(True)
self.PushButtonGet.setEnabled(True)

def slotPut(self):
OK = False
fileName,OK = QInputDialog.getText(self,self.tr("Put File:"),self.tr("Please input file name:"),QLineEdit.Normal,QString())
if OK and not fileName.isEmpty():
self.remoteFileName = QFile(fileName)
self.ftpClient.put(self.remoteFileName,fileName)
self.curStatus = "PUT"

def slotGet(self):
OK = False
fileName,OK = QInputDialog.getText(self,self.tr("Get File:"),self.tr("Please input file name:"),QLineEdit.Normal,QString())
if OK and not fileName.isEmpty():
self.localFile = QFile(fileName)
self.localFile.open(QIODevice.WriteOnly)
self.ftpClient.get(fileName,self.localFile)
self.curStatus = "GET"

def slotDone(self,error):
if error:
QMessageBox.warning(self,self.tr("error"),self.ftpClient.errorString())
return
if self.curStatus == "LOGIN":
self.PushButtonLogin.setEnabled(False)
self.curStatus = "None"
if self.curStatus == "PUT":
QMessageBox.warning(self,self.tr("succeed"),self.tr("Put file succeed!"))
self.curStatus = "None"
if self.curStatus == "GET":
self.localFile.close()
QMessageBox.warning(self,self.tr("succeed"),self.tr("Get file succeed!"))
self.curStatus = "None"

app=QApplication(sys.argv)
dialog=FtpClient()
dialog.show()
app.exec_()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: