#1 Le 18/11/2013, à 13: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_eventQObject.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, à 21:52)
Hors ligne
#2 Le 19/11/2013, à 07: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, à 11: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, à 21: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