1 2 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_()) | 
Partager