| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 
 | # -*- coding: iso-8859-1 -*-
#Code pour Python3. Pour Python2, enlever les parenthèses après les print.
 
import sys
from PyQt4 import QtGui,  QtNetwork,  QtCore
 
h = 200
l = 400
 
serveur = monserveur
port = monport
login = monlogin
mdp = monmdp
 
etat = {0:"Aucune connexion",  1:"Résolution du nom en cours",  2:"Tentative de connexion en cours", 
        3:"Connexion établie",  4:"Identification établie", 5:"Déconnexion en cours"}
 
 
class Frame(QtGui.QMainWindow):
    def __init__(self, parent=None):
        QtGui.QMainWindow.__init__(self, parent)
        self.resize(l,h)
        self.setFont(QtGui.QFont("Verdana",8))
 
        self.btn = QtGui.QPushButton("Se connecter", self)
        self.btn.move(10, 10)
        self.btn1 = QtGui.QPushButton("Se déconnecter", self)
        self.btn1.move(110, 10)
        self.btn2 = QtGui.QPushButton("Liste", self)
        self.btn2.move(210, 10)
 
        self.txt = QtGui.QTextEdit(self)
        self.txt.setGeometry(10, 50, 150, 100)
 
        self.treewid = QtGui.QTreeWidget(self)
        self.treewid.setGeometry(200, 50, 150, 100)
 
        self.ftp = QtNetwork.QFtp(self)
 
        self.btn.clicked.connect(self.actionCo)    
        self.ftp.stateChanged.connect(self.stateServer)
        self.btn1.clicked.connect(self.actionDeco)
        self.btn2.clicked.connect(self.list_)
        self.treewid.itemClicked.connect(self.cd_)
 
        self.ftp.listInfo.connect(self.list_info)
 
 
    def actionCo(self):
        if self.ftp.state() != 0:
            print ('Serveur en cours de connexion ou connecté')
        else:
            print ('Début de connexion')
            self.ftp.connectToHost(serveur,  port)
            self.ftp.login(login,  mdp)
 
    def actionDeco(self):
        if self.ftp.state() == 0:
            print('Serveur non connecté')
        else:
            self.ftp.close()
 
    def stateServer(self):
        print (etat[self.ftp.state()])
        print()
 
    def list_(self):
        self.txt.clear()
        self.treewid.clear()
        racine = QtGui.QTreeWidgetItem()
        racine.setText(0,'..')
        self.treewid.addTopLevelItem(racine)
        self.liste = self.ftp.list()
 
    def list_info(self,i):
        item = QtGui.QTreeWidgetItem()
        if i.isDir():
            item.setText(0,i.name())
            self.treewid.addTopLevelItem(item)
        if i.isFile():
            self.txt.append(i.name())
 
    def cd_(self, item, col):
        self.ftp.cd(item.text(0))
        self.list_()    
 
 
app = QtGui.QApplication(sys.argv)
frame = Frame()
frame.show()
sys.exit(app.exec_()) |