2017-10-11 2 views
0

Ceci est mon code pour exécuter PyQt, cependant la méthode selectFile n'est pas appelée par le bouton. Le code de l'interface utilisateur est converti à partir de QtCreator. J'ai vérifié mon objectName pour le bouton est browseCSVMéthode PyQt5 non connectée au bouton

import sys 
from readCSV import * 
from PyQt5 import QtCore, QtGui, QtWidgets 
from PyQt5.QtWidgets import QFileDialog 
import form 
from function2 import * 
from function4 import * 
from Function6 import * 

class App(QtWidgets.QMainWindow, form.Ui_MainWindow): 
    def __init__(self): 
     super(self.__class__, self).__init__() 
     self.setupUi(self) # This is defined in design.py file automatically 

     self.browseCSV.clicked.connect(self.selectFile) 

    def selectFile(self): 
     print ("Hello") 

if __name__ == '__main__': 
    app = QtWidgets.QApplication(sys.argv) 
    MainWindow = QtWidgets.QMainWindow() 
    ui = form.Ui_MainWindow() 
    ui.setupUi(MainWindow) 
    MainWindow.show() 
    sys.exit(app.exec_()) 

Répondre

0

Vous n'êtes pas réellement utiliser votre classe App. Donc, vous devez faire ceci:

if __name__ == '__main__': 
    app = QtWidgets.QApplication(sys.argv) 
    window = App() 
    window.show() 
    sys.exit(app.exec_() 

PS: ne jamais utiliser self.__class__ dans un appel super. Dans certains scénarios, il peut provoquer une régression infinie. Si vous utilisez Python 3, vous pouvez simplement utiliser super().__init__() pour éviter de répéter le nom de la classe.