QT ERIC4

qtCette seconde partie consiste a créer un interface graphique sous QT designer.  qt

Pour commencer,il faut créer une interface,voici les différentes étapes:

-Choisir une Main Windows:

main

-Insérer des widgets comme "pushbutton","dial","time edit",ou encore 'lineedit":
widgets

-Modifier les propriétés des widgets,les renommer...
Faire Ctrl-R pour prévisualiser l'interface créée:

fenetre


er La troisième étape est réalisée avec le logiciel Eric4 er


-Créer un  fichier sous Eric4:

pr


Il faut maintenant installer les fonctions nécessaires au bon fonctionnement  de notre fichier.

-def nettoie >

def nettoie (self, html):
       
       
        html = html.replace("\n", " ")
        expr = re.compile("<script.*?</script>",  re.U)
        html = expr.sub(" ",  html)
        expr = re.compile("<style.*?</style>",  re.U)
        html = expr.sub(" ",  html)
        expr = re.compile("<.*?>")
        text = expr.sub(" ",  html)
        text = text.replace("&nbsp;", " ")
        text = re.sub(" +", " ", text)
        return text

 
Cette fonction permet d'obtenir un texte brut.

-def on_lineEdit_returnPressed >  

def on_lineEdit_returnPressed(self):

Slot documentation goes here.


self.on_pushButton_clicked()

Cette fonction sert à avoir accès au site web inscrit dans la "lineedit" en appuyant uniquement sur entrer

-def on_pushButton_clicked >

 @pyqtSignature()
def on_pushButton_clicked(self):

Slot documentation goes here.



url = unicode(self.lineEdit.text())
if not url.startswith(http://) : url=http://+url

self.webView.setUrl(QtCore.QUrl(url))
self.statusbar.setText(loading +url)
Cette fonction permet de charger la page avec le "pushbutton",
complète l'adresse du site si besoin
et montre que le téléchargement est en cours.


-def on_webView_loadFinished >

  def on_webView_loadFinished (self):

  
       
self.statusbar.setText(unicode(self.webView.url().toString())+"
Chargement termine")

        html =
unicode(self.webView.page().mainFrame().toHtml())

        text = self.nettoie(html)

        self.textEdit.setText(text)

        langue = self.langue(text)

        self.label.setText(langue)

Cette fonction sert à récupérer le code Html de la page,
vient ensuite le nettoyage, le texte brut est alors affiché
dans un "textedit". 

-def langue >
def langue (self, text):

         

        langues =
{"en":"anglais,"fr":u"français,"all":"allemand"}

        dicoMots={}

        resultat=[]

        for langue in langues:

           
fichier = open("liste"+langue+".txt")

           
texte = fichier.read()

            expr
= re.compile("\W+", re.U)

           
liste = expr.split(texte)

           
dicoMots[langue]=liste







        listeinc=text.split()

        for langue in langues:

           
compteurmots=0

            for
mot in listeinc:

               
if mot in dicoMots[langue]: compteurmots+=1

           
resultat+=[(compteurmots,langue)]

        resultat.sort()


    print resultat

print "la page est en"
+langues [resultat [-1][1]]+
"!"
return langues [resultat[-1][1]]


Cette fonction compare le site web avec les textes anglais,
français et allemand, pour déterminer la langue du site web.





Voici le résultat que vous devez acquérir:

mde

Ou pour un site allemand :

amica