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_())
'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
@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
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