2015-09-26 2 views
0

Dans l'intervalle QT Designer J'ai défini un bouton loadValues_btn et associé le signal pressé() aux loadValues ​​de fente personnalisée()Impossible d'exécuter du code personnalisé de la pression du bouton Qt

Puis en Python, après avoir chargé le fichier .ui avec la bibliothèque PyQt, j'ai défini la méthode loadValues ​​() dans la classe MainApplication, afin d'exécuter du code personnalisé lorsque l'on clique sur le même bouton. Mais il n'exécute pas le code (je dois simplement d'ouvrir une boîte de dialogue de sélection de fichier)

J'ai déjà essayé avec clicked() et il ne fonctionne pas non plus

Voici le code de classe MainApplication:

class Main(QMainWindow, Ui_MainWindow):  
    def __init__(self,): 
     super(Main, self).__init__() 
     self.setupUi(self) 

    def loadValues(): 
     filePath = QtGui.QFileDialog.getOpenFileName(parent=self, caption='Open file', directory='.') 

if __name__ == '__main__': 
    app = QtGui.QApplication(sys.argv) 
    main = Main() 
    main.show() 
    sys.exit(app.exec_()) 
+0

'setupUi' devrait faire la connexion .Si ce n'est pas le cas, alors vous pouvez essayer de réparer sur le concepteur (assurez-vous que vous avez défini les connexions correctes), ou vous pouvez simplement faire le code de connexion vous-même – hyde

+0

@hyde J'ai généré avec PyQt4 le code python derrière l'interface UI, et il me semble que les signaux et les slots sont correctement connecté pour la fente de loadValues ​​... – davide

+0

ici est le code présent dans setpUi de la classe Ui_MainWindow: « classe Ui_MainWindow (objet): def setupUi (auto, MainWindow): MainWindow.setObjectName (_fromUtf8 ("MainWindow")) MainWindow.resize (803, 476) ... self.loadData_btn = QtGui.QPushButton (self.centralWidget) self.loadData_btn.setGeometry (QtCore.QRect (30, 10, 75, 23)) self.loadData_btn.setObjectName (_fromUtf8 ("loadData_btn")) .. . QtCore.QObject.connect (self.loadData_btn, QtCore.SIGNAL (_fromUtf8 ("clicked()")), MainWindow.loadValues) ... ' Je ne comprends pas où l'erreur est :( – davide

Répondre

1

Merci à tous pour votre soutien. En fait, la boîte de dialogue Fichier n'apparaissait pas simplement parce que ... c'était derrière la fenêtre de l'éditeur Spyder !! Donc, il était caché et il ne s'affiche pas dans la fenêtre principale de l'application Python que je développais !!! :(Inutile de vous dire que j'ai perdu un jour pour comprendre où était le problème, f *** ing Python !!!