Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 18/11/2013, à 14:05

Superbebert

[Résolu] PyQt: connect fonctionne sous Windows et pas sous Linux

Bonjour,

Voila j'ai un petit souci avec pyQt. J'ai des connect qui fonctionnent très bien sous windows mais pas sous Linux. J'utilise qtDesigner pour générer mon IHM et ça fonctionne sans soucis.

Voici les parties principales du code.

fichier IHM.py

lass Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName(_fromUtf8("MainWindow"))
        MainWindow.resize(952, 778)
        MainWindow.setProperty("accessibleName", _fromUtf8(""))
[...]
self.action_Quitter = QtGui.QAction(MainWindow)
        self.action_Quitter.setCheckable(False)
        self.action_Quitter.setObjectName(_fromUtf8("action_Quitter"))

et puis le main.py

class GDOC(QtGui.QMainWindow,Ui_MainWindow):
    """Main Qt Window"""

    def __init__(self,Form):
        print "GDOC:init Initialisation Application"
        self.config=config_file()
        #self.config.print_conf()
        self.Form=Form
        dbname=self.config.get_config_elem("ref_db")
        self.dbref=db_manag(Form,dbname)
        #self.config.add_elem("ref_db",str(dbFileInfo))

    def setupUi2(self,Form):
        """Ajoutons ce qu'il manque à la fenêtre"""
        self.Form=Form
        Ui_MainWindow.setupUi(self, Form)
        # A conserver pour rediriger l'exit de la croix vers le close_event
        Form.closeEvent = self.close_event

        QObject.connect(self.action_Quitter,SIGNAL("triggered()"),self.test)
   
    def test(self):
        print "coucou"
    [...]
if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    MainWindow = QtGui.QMainWindow()
    ui = GDOC(MainWindow)
    ui.setupUi2(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

Donc la fenêtre s'affiche correctement, par contre sous linux impossible d'exécuter la fonction "test" alors que cela marche correctement sous windows. Et Sous linux aucun message ne s'affiche lors de la selection du menu.

Dernière info sous linux je suis sous cette version de Qt
Python User Interface Compiler 4.9.1 for Qt version 4.8.1
et pour windows
Python User Interface Compiler 4.9.5 for Qt version 4.8.3
et la generation de code de l'interface est identique pour la version linux et windows.
Si quelqu'un a une idée je suis preneur.

Merci beaucoup

Frédéric

Dernière modification par Superbebert (Le 19/11/2013, à 22:52)

Hors ligne

#2 Le 19/11/2013, à 08:05

EdLeH

Re : [Résolu] PyQt: connect fonctionne sous Windows et pas sous Linux

salut,

je ne sais pas si cela suffira, mais teste déjà en remplaçant la procédure connect par sa version plus récente :

self.action_Quitter.triggered.connect(self.test)

O-

Hors ligne

#3 Le 19/11/2013, à 12:00

Superbebert

Re : [Résolu] PyQt: connect fonctionne sous Windows et pas sous Linux

Merci, je teste ça des ce soir ... en tout cas ça marche déja sur windows.

Hors ligne

#4 Le 19/11/2013, à 22:49

Superbebert

Re : [Résolu] PyQt: connect fonctionne sous Windows et pas sous Linux

Bon bein voila ... Merci beaucoup EdLeH ... ça fonctionne comme il faut.
J'en ai profité pour passer sous pyside dans la foulé.

Hors ligne