IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PyQt Python Discussion :

Eric3, QtDesigner et Python


Sujet :

PyQt Python

  1. #1
    Membre régulier Avatar de jacquesh
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 269
    Points : 119
    Points
    119
    Par défaut Eric3, QtDesigner et Python
    Bonjour

    QTDesigner c'est très bien... avec du C++ mais avec python comment peut-on peut-on insérer du code concernant les slots, signaux... sans les faire disparaitre a chaque fois que j'utilise pyuic.
    - OU -
    Comment peut on isoler la partie evenementiel , slot, ... du code généré par pyuic.

    J'ai vu que l'on pouvais éditer le source et que cela générait un fichier form.ui.h mais je ne vais pas codé cette partie en C ??? comment cela fonctionne...

    une idée...

    merci d'avance.

  2. #2
    Membre éclairé
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Points : 872
    Points
    872
    Par défaut
    Euh salut ... je suis désolé mais je n'est pas compris ce que tu chercher a faire , a vrai dire moi le vocabulaire de prog ca mechappe encore ...

    Tu créer une interface que tu converti en fichier .py a l'aide de pyuic ..

    Quesque tu cherche a faire ensuite ..

    A plus .
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  3. #3
    Membre régulier Avatar de jacquesh
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 269
    Points : 119
    Points
    119
    Par défaut
    Une fois l'interface convertie en python via pyuic il me créé un fichier interface.py, dans le cas où j'ai défini des connexions (Attribution de Signal Handler à un composant : tel que click, doubliclick, drop, ...) il rajouter un fichier interface.ui.h dans lequel on devrai mettre le code associé aux évènements...afin qu'il ne soit pas supprimer après chaque utilsation de pyuic; mais la syntax du code générée n'est pas du python.....

    que faire... ou comment puis-je codé en python la partie evenementiel sans touché au code généré...

    J'espère avoir été plus clair cette fois ci...


  4. #4
    Membre éclairé
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Points : 872
    Points
    872
    Par défaut Ji voi un peu plus clair ..
    Ceci dit je n'utilise pas encore les liaisons, mais pour ce qui est du clic sur un bouton je peux te filer un petit bout de code ou une fonction est definie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    self.PushButton7 = QPushButton(self,'PushButton7')
            self.PushButton7.setGeometry(QRect(550,50,100,30))
            self.PushButton7.setText(self.tr("Lunettes actives"))
            self.connect(self.PushButton7,SIGNAL('clicked()'),Test)
     
    # ici tu indique que lors d'un clic, tu execute la fonction definie precedemment Test()
    Voila du moins pour un click ...
    apres je ne c'est pas si tu a regarder les tutoriels fourni avec PyQt mais le Drop etc y sont gérés dans la plupars des cas ...

    J'espere t'avoir au moins aider un peu ... aplouche
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  5. #5
    Membre éclairé
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Points : 872
    Points
    872
    Par défaut Code pr le drag and drop
    Voici la source fourni pas PyQt pour gerrer le drag and drop

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    #!/usr/bin/env python
     
    # Ported to PyQt by Issac Trotts on Jan 1, 2002
     
    import sys
    from qt import *
     
    import dropsite, secret
     
     
    def addStuff( parent, yn_image, yn_secret = 0 ):
        tll = QVBoxLayout( parent, 10 )
        d = dropsite.DropSite( parent, 'dropsite' )
        d.setFrameStyle( QFrame.Sunken + QFrame.WinPanel )
        tll.addWidget( d )
        if yn_image:
            stuff = QPixmap()
            if not stuff.load( "trolltech.bmp" ):
                stuff = QPixmap(20,20)
                stuff.fill(Qt.green)
            d.setPixmap( stuff )
        else:
            d.setText("Drag and Drop")
        d.setFont(QFont("Helvetica",18))
        if secret:
            s = secret.SecretSource( 42, parent )
            tll.addWidget( s )
     
        format = QLabel( "\n\n\n\nNone\n\n\n\n", parent )
        tll.addWidget( format )
        tll.activate()
        parent.resize( parent.sizeHint() )
     
        QObject.connect( d, PYSIGNAL('message(QString &)'),
            format, SLOT('setText(QString &)') )
     
     
    app = QApplication( sys.argv )
     
    mw = QWidget()
    addStuff( mw, 1 )
    mw.setCaption( "Qt Example - Drag and Drop" )
    mw.show()
     
    mw2 = QWidget()
    addStuff( mw2, 0 )
    mw2.setCaption( "Qt Example - Drag and Drop" )
    mw2.show()
     
    mw3 = QWidget()
    addStuff( mw3, 1, 1 )
    mw3.setCaption( "Qt Example - Drag and Drop" )
    mw3.show()
     
    QObject.connect(qApp,SIGNAL('lastWindowClosed()'),qApp,SLOT('quit()'))
     
    app.exec_loop()
    Voila maintenant il faut dechiffrer ...
    Bon courage aplouche
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  6. #6
    Membre régulier Avatar de jacquesh
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 269
    Points : 119
    Points
    119
    Par défaut
    Bijour, ...

    Merci de ton aide... cepandant c'est pas tout à fait ma question :

    Ma question concernait surtout l'aspect pratique du codage avec QtDesigner avec un autre language que C++ en l'occurence python.

    Ma question était plutot ciblé sur la facon de se servir du fichier interface.ui.h mais dans l'environnement python

    Ce que je disait dans mon précédent post c'est qu'a chaque utilisation de pyuic tous les modifs sont suppr. tandis que le contenu de interface.ui.h n'est pas altéré.


    HORS SUJET mais très utile.... si ca intéresse quelqu'un...
    INFORMATION UTILE : Source très riche d'exemples pour tous les langages... http://www.koders.com/

  7. #7
    Membre éclairé
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Points : 872
    Points
    872
    Par défaut Dslé
    Oups dslé , bon ba en esperant que tu trouve une solution .. bon courage aplus
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  8. #8
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 37
    Points : 45
    Points
    45
    Par défaut
    tu tombes bien ^^ , je viens de finir un logiciel complet avec pyqt.

    la pratique:
    dessine ta fenêtre avec qt-designer
    pyuic -> un fichier disons interface.py
    tu fais un autre fichier view.py dans lequel tu declares une classe qui hérite
    de ton interface.

    exemple:
    VueActivity.py (interface)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    from qt import *
     
     
    class WindowActivity(QDialog):
        def __init__(self,parent = None,name = None,modal = 0,fl = 0):
            QDialog.__init__(self,parent,name,modal,fl)
     
            if not name:
                self.setName("WindowActivity")
     
     
     
            self.closeButton = QPushButton(self,"closeButton")
            self.closeButton.setGeometry(QRect(640,480,120,30))
     
            self.buttonGroup3 = QButtonGroup(self,"buttonGroup3")
            self.buttonGroup3.setGeometry(QRect(10,10,160,150))
     
            self.newOutputButton = QPushButton(self.buttonGroup3,"newOutputButton")
            self.newOutputButton.setGeometry(QRect(20,70,120,25))
     
            self.newInputButton = QPushButton(self.buttonGroup3,"newInputButton")
            self.newInputButton.setGeometry(QRect(20,30,120,25))
     
            self.newTransfertButton = QPushButton(self.buttonGroup3,"newTransfertButton")
            self.newTransfertButton.setGeometry(QRect(20,110,120,25))
     
            self.activityIconView = QIconView(self,"activityIconView")
            self.activityIconView.setGeometry(QRect(180,0,600,480))
     
            self.buttonGroup5 = QButtonGroup(self,"buttonGroup5")
            self.buttonGroup5.setGeometry(QRect(10,310,160,90))
     
            self.reportStockButton = QPushButton(self.buttonGroup5,"reportStockButton")
            self.reportStockButton.setGeometry(QRect(10,35,140,30))
     
            self.buttonGroup4 = QButtonGroup(self,"buttonGroup4")
            self.buttonGroup4.setGeometry(QRect(10,170,160,130))
     
            self.reportActivityButton = QPushButton(self.buttonGroup4,"reportActivityButton")
            self.reportActivityButton.setGeometry(QRect(10,90,140,27))
     
            self.textLabel3 = QLabel(self.buttonGroup4,"textLabel3")
            self.textLabel3.setGeometry(QRect(10,20,140,20))
     
            self.knownTemplates = QComboBox(0,self.buttonGroup4,"knownTemplates")
            self.knownTemplates.setGeometry(QRect(10,40,140,25))
     
            self.languageChange()
     
            self.resize(QSize(772,511).expandedTo(self.minimumSizeHint()))
            self.clearWState(Qt.WState_Polished)
     
     
        def languageChange(self):
            self.setCaption(self.__trUtf8("\x41\x63\x74\x69\x76\x69\x74\xc3\xa9\x20\x3a\x20\x44\x45\x45\x45"))
            self.closeButton.setText(self.__tr("Fermer"))
            self.buttonGroup3.setTitle(self.__trUtf8("\x4f\x70\xc3\xa9\x72\x61\x74\x69\x6f\x6e\x73\x20\x64\x65\x20\x73\x74\x6f\x63\x6b\x3a"))
            self.newOutputButton.setText(self.__tr("Nouvelle Sortie"))
            self.newInputButton.setText(self.__trUtf8("\x4e\x6f\x75\x76\x65\x6c\x6c\x65\x20\x45\x6e\x74\x72\xc3\xa9\x65"))
            self.newTransfertButton.setText(self.__tr("Nouveau Transfert"))
            self.buttonGroup5.setTitle(self.__tr("Rapport de stock:"))
            self.reportStockButton.setText(self.__tr("Rapport de stock"))
            self.buttonGroup4.setTitle(self.__trUtf8("\x52\x61\x70\x70\x6f\x72\x74\x20\x64\x27\x61\x63\x74\x69\x76\x69\x74\xc3\xa9\x3a"))
            self.reportActivityButton.setText(self.__trUtf8("\x52\x61\x70\x70\x6f\x72\x74\x20\x64\x20\x61\x63\x74\x69\x76\x69\x74\xc3\xa9"))
            self.textLabel3.setText(self.__tr("Templates disponibles:"))
     
     
        def __tr(self,s,c = None):
            return qApp.translate("WindowActivity",s,c)
     
        def __trUtf8(self,s,c = None):
            return qApp.translate("WindowActivity",s,c,QApplication.UnicodeUTF8)
    Ensuite tu fais ta view:
    ViewActivity
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    from VueActivity import WindowActivity
    import ViewStockInput
    import ViewStockOutput
    import ViewStockTransfert
    from CommonActionsUser import ActionQuit, ActionToReport, ActionOpenStockReportView
    from ActionForActivityUser import ActionOpenStock
    from IconManager import IconManager
    from Observable import Observer
    from MenuUser import RmbIconViewMenu, RmbStockUserMenu
    from qt import *
     
    class ViewActivity(WindowActivity,Observer):
      def __init__(self,mainWindow,model,persistence):  #the model is Activity
        WindowActivity.__init__(self,mainWindow)
        #Actions:
        self.quit = ActionQuit(persistence)
        self.makeActivityReport = ActionToReport(model)
        self.openStockReportView = ActionOpenStockReportView(model,self)
        #self.openOperationReportView = ActionOpenOperationReportView(model)
        self.openStock = ActionOpenStock(model,self)
        self.menuRmbStock = RmbStockUserMenu(self.activityIconView)
        self.menuRmb = RmbIconViewMenu(model,self.activityIconView)
        #Connections:
        self.connect(self.closeButton,SIGNAL("clicked()"),self.quit.doIt)
        self.connect(self.reportActivityButton,SIGNAL("clicked()"),self.reportActivitySlot)
        self.connect(self.reportStockButton,SIGNAL("clicked()"),self.reportStockSlot)
        self.connect(self.newInputButton,SIGNAL("clicked()"),self.newInputSlot)
        self.connect(self.newOutputButton,SIGNAL("clicked()"),self.newOutputSlot)
        self.connect(self.newTransfertButton,SIGNAL("clicked()"),self.newTransfertSlot)
        self.connect(self.activityIconView,SIGNAL("doubleClicked(QIconViewItem *)"),self.openStockSlot)
        self.connect(self.activityIconView,SIGNAL("rightButtonPressed(QIconViewItem *,const QPoint &)"),self.menuRmbSlot)
        #labels
        self.newInputButton.setText(QString(_("ViewActivityUser::newInputButton")))
        self.newOutputButton.setText(QString(_("ViewActivityUser::newOutputButton")))
        self.newTransfertButton.setText(QString(_("ViewActivityUser::newTransfertButton")))
        self.reportStockButton.setText(QString(_("ViewActivityUser::reportStockButton")))
        self.reportActivityButton.setText(QString(_("ViewActivityUser::reportActivityButton")))
        self.closeButton.setText(QString(_("ViewActivityUser::closeButton")))
        #other
        self.model = model
        model.addObserver(self)
        self.iconManager = IconManager()
        self.defaultIconPicture = self.iconManager.getIconPictureByDefault("Stock")
        self.update()
     
      def update(self):
        """method called by the model has done a notification
        """
        for i in self.model.getAllStocks():
          if i.getIconFilename() == "none":
            self.iconManager.addIconToIconview(self.activityIconView,i.getStockName(),self.defaultIconPicture)
          else:
            self.iconManager.addIconToIconview(self.activityIconView,i,self.iconManager)
        for template in self.makeActivityReport.getTemplatesList():
          self.knownTemplates.insertItem(QString(template))
     
    ###################################################
    # SLOT / ACTION
    ###################################################
      def openStockSlot(self,icon):
        #icon is a QIconViewItem
        self.openStock.doIt(icon)    
     
      def reportActivitySlot(self):
        self.makeActivityReport.doIt()
     
      def reportStockSlot(self):
        self.openStockReportView.doIt()
     
      def newInputSlot(self):
        ViewStockInput.ViewStockInput(self.model,self)
     
      def newOutputSlot(self):
        ViewStockOutput.ViewStockOutput(self.model,self)
     
      def newTransfertSlot(self):
        ViewStockTransfert.ViewStockTransfert(self.model,self)
     
    ###################################################
    # UPDATE
    ###################################################
      def menuRmbSlot(self,qiconViewItem, qpoint):
        self.menuRmb.display(qpoint) 
        print "menuRmbSlot not finished"
    Bon ici le from qt import * n'est vraiment pas utile, importe que ce qu il te faut sinon ça rame ^^

    Tu pourras trouver le logiciel complet ici:
    http://sourceforge.net/project/showf...roup_id=139774

    Attention c est du MVC mais au moins ta un beau syteme de slot. voili voilou

  9. #9
    Membre régulier Avatar de jacquesh
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 269
    Points : 119
    Points
    119
    Par défaut
    Salut !!

    ton post m'est vraiment très utils !!

    Je viens de découvrir MVC :: après plus de 8 ans de développement !! je n'en ai jamais entendu parlé.
    Ca ma l'air vraiment très utils...je recherche de ce pas des p'tit tutos pour bien en saisir le fonctionnement.

    Je vais enfin pouvoir codé proprement mes GUI (qui jusqu'alors était un p'tit plat de nouilles...)

    Merci à toi.

  10. #10
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 37
    Points : 45
    Points
    45
    Par défaut
    Tres heureux d avoir pu t aider. Je suis encore à l'école et c est le genre de pattern qu on nous enseigne ^^
    Je suis entrain d'écrire des tutos car sur le net on trouve pas grand chose la dessus. Je t en ferai par des que j'aurais uploader tout ca ; )

  11. #11
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 13
    Points : 12
    Points
    12
    Par défaut Debutant mais debrouilllard
    ouin mais jai un petit probleme

    jai creer mon interface avec pyuic comme ceci:
    pyuic monficher.ui > monfichier.py
    par la suite en lisant le help de pyuic pour faire le fichier ma classe qui herite(que je sait pas comment faire) de mon interface jai appris que pyuic le fait tout seule en ecrivant ceci:
    pyuic -x -subimpl <classname> <uifile>

    mais la quand je suis venu pour changer le text de mon label sa marchais plus il me donne l'erreur suivant

    Traceback (most recent call last):
    File "dlgexercice1.py", line 17, in slt_test
    self.lbl_resultat.setText(self.__tr("<p align=\"center\">A</p>"))
    AttributeError: _dlg_test__tr


    pour le fichier contenant ma classe qui herite de mon interface
    dlgexercice1.py
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    # -*- coding: utf-8 -*-
     
    import sys
    from qt import *
    from frm_test import *
     
     
    class dlg_test(frm_test):
        def __init__(self,parent = None,name = None,fl = 0):
            frm_test.__init__(self,parent,name,fl)
     
        # public slot
     
        def slt_test(self):
    	    resultat=self.cmb_test.currentText()
    	    if resultat=="a":
    		    self.lbl_resultat.setText(self.__tr("<p align=\"center\">A</p>"))
     
     
    if __name__ == "__main__":
        a = QApplication(sys.argv)
        QObject.connect(a,SIGNAL("lastWindowClosed()"),a,SLOT("quit()"))
        w = dlg_test()
        a.setMainWidget(w)
        w.show()
        a.exec_loop()
    et pour celui contenant mon interface

    frm_test.py
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    # -*- coding: utf-8 -*-
     
    # Form implementation generated from reading ui file 'exercice1.ui'
    #
    # Created: Wed Jan 2 07:59:40 2002
    #      by: The PyQt User Interface Compiler (pyuic) 3.14.1
    #
    # WARNING! All changes made in this file will be lost!
     
     
    from qt import *
     
     
    class frm_test(QWidget):
        def __init__(self,parent = None,name = None,fl = 0):
            QWidget.__init__(self,parent,name,fl)
     
            if not name:
                self.setName("frm_test")
     
     
     
            self.btn_quit = QPushButton(self,"btn_quit")
            self.btn_quit.setGeometry(QRect(240,70,171,31))
     
            self.cmb_test = QComboBox(0,self,"cmb_test")
            self.cmb_test.setGeometry(QRect(20,20,181,21))
     
            self.lbl_resultat = QLabel(self,"lbl_resultat")
            self.lbl_resultat.setGeometry(QRect(230,10,221,51))
     
            self.btn_test = QPushButton(self,"btn_test")
            self.btn_test.setGeometry(QRect(30,70,171,31))
     
            self.languageChange()
     
            self.resize(QSize(519,120).expandedTo(self.minimumSizeHint()))
            self.clearWState(Qt.WState_Polished)
     
            self.connect(self.btn_test,SIGNAL("clicked()"),self.slt_test)
            self.connect(self.btn_quit,SIGNAL("clicked()"),self.close)
     
     
        def languageChange(self):
            self.setCaption(self.__tr("Exercice 1"))
            self.btn_quit.setText(self.__tr("&quit"))
            self.btn_quit.setAccel(self.__tr("Alt+Q"))
            self.cmb_test.clear()
            self.cmb_test.insertItem(self.__tr("a"))
            self.cmb_test.insertItem(self.__tr("b"))
            self.cmb_test.insertItem(self.__tr("c"))
            self.lbl_resultat.setText(self.__tr("<p align=\"center\">simon</p>"))
            self.btn_test.setText(self.__tr("test"))
            self.btn_test.setAccel(QString.null)
     
     
        def slt_test(self):
            print "frm_test.slt_test(): Not implemented yet"
     
        def __tr(self,s,c = None):
            return qApp.translate("frm_test",s,c)
    je me doute de mon erreur sa doit etre a cause des classes mais je ne sait pas comment regler se probleme ... meme avec tout les tutoriels que jai lu ...

    si quelqu un serait assez genereux pour me faire comprendre pourquoi sa marche pas cela serait gentil

  12. #12
    Membre actif
    Avatar de bobuse
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 232
    Points : 278
    Points
    278
    Par défaut
    Eric3 gère tout ça très bien normalement.

    Tu crées un formulaire qui lance le designer. Puis clic-droit sur ce formulaire, et dans le menu, tu as "compiler" et "générer une sous-classe".

Discussions similaires

  1. [langage] traduction d'un fonction python en perl
    Par ay_pepito dans le forum Langage
    Réponses: 3
    Dernier message: 04/12/2007, 15h06
  2. CORBA & PYTHON
    Par stan91stan dans le forum CORBA
    Réponses: 5
    Dernier message: 10/06/2004, 12h32
  3. module .so pour python... ?!
    Par totoetlititi dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 09/03/2004, 14h51
  4. [Lien]erreur dans mon programme python
    Par durnambule dans le forum Général Python
    Réponses: 11
    Dernier message: 29/01/2004, 14h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo