PyQt5 Funktionszugriff

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
DonJuan
User
Beiträge: 12
Registriert: Donnerstag 15. März 2018, 20:51

Mittwoch 12. September 2018, 18:57

Hallo zusammen,

ich schreibe zur Zeit an meiner Masterthesis.
Wie Ihr vermutlich am Quellcode erkennen werdet bin ich kein Informatiker ;-)

Zum Ausgangspunkt:
Ich habe eine Emotionserkennungsoftware programmiert.
Diese will ich nun durch eine GUI ausführen. Die GUI habe ich durch den QT Designer erstellt:

Code: Alles auswählen


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(565, 617)
        .....
      

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "Emotionserkennung"))
     ......

Auf diesen Code greife ich folgerndermaßen zu:

Code: Alles auswählen

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

        self.StartButton.clicked.connect(self.clicked)


    def clicked(self):
    	(Das ist mein Problem... erkläre ich weiter unten)
    	

def main():
    app = QApplication(sys.argv)
    main_window = MainWindow()
    main_window.show()
    sys.exit(app.exec_())

if __name__ == "__main__":
    main()

Nun mein Problem:

Code: Alles auswählen

 def clicked(self):
    	print("Start) ####Das funktioniert ohne Probleme und gibt auf der Konsole Start aus, das war aber nur ein Test ob es überhaupt 					 	 
 					funktioniert
 

Eigentlich sollte er auf eine Funktion SaveAndTrain in einer Datei Save_n_Train.py im gleichen Verzeichnis zugreifen und diese ausführen.

So würde es ja normal funktionieren: Save_n_Train.SaveAndTrain()

Es funktioniert aber leider nicht: Folgende Fehlermeldung: Process finished with exit code -1073740791 (0xC0000409)
Ich vermute, dass es daran liegt, dass die Syntax nicht mit pyqt kompatibel ist, aber wie oben schon angesprochen ich bin kein Informatiker...



Könnte mir bitte jemand helfen, da in ein paar Wochen schon die Abgabe meiner Masterthesis ist :-(
Sirius3
User
Beiträge: 8255
Registriert: Sonntag 21. Oktober 2012, 17:20

Mittwoch 12. September 2018, 19:12

Der Fehler deutet darauf hin, dass eine Bibliothek außerhalb von Python einen Fehler verursacht. Was für eine Bibliothek benutzt Du und kannst Du die genau Zeile eingrenzen, wo der Fehler auftritt?
DonJuan
User
Beiträge: 12
Registriert: Donnerstag 15. März 2018, 20:51

Mittwoch 12. September 2018, 19:27

Vielen Dank für die schnelle Antwort.
Ich habe mehrere Printausgaben eingebaut und der Fehler liegt eindeutig dort:

Code: Alles auswählen

def clicked(self):
	Save_n_Train.SaveAndTrain()
Folgendes funktioniert:

Code: Alles auswählen

def clicked(self):
       print("Start")

Die Datei bzw. die Funktion auf die er zugreifen soll ist eine Gesichts/Emotionserkennung mit Webcam Öffnung.
Hatte erst die Vermutung, das mein PC überlastet ist, aber das ist es nicht.
Ich habe in die Datei Save_n_Train einfach nur testweise mal print("Starte Programm") geschrieben und das funktioniert auch nicht. Gleicher Fehlercode.

Letzendlch benutze ich nur:

Code: Alles auswählen

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5 import QtGui, QtCore
Und im Qt Designer Script:

Code: Alles auswählen

from PyQt5 import QtCore, QtGui, QtWidgets
__deets__
User
Beiträge: 3289
Registriert: Mittwoch 14. Oktober 2015, 14:29

Mittwoch 12. September 2018, 20:04

Aber woher kommt denn dieses SaveAndTrain? Hast du das selbst geschrieben?
DonJuan
User
Beiträge: 12
Registriert: Donnerstag 15. März 2018, 20:51

Mittwoch 12. September 2018, 20:07

Ja genau das habe ich selbst geschrieben.
__deets__
User
Beiträge: 3289
Registriert: Mittwoch 14. Oktober 2015, 14:29

Mittwoch 12. September 2018, 20:46

Und welche Bibliotheken benutzt du darin? Irgendetwas darin verträgt sich ja nicht mit Qt, da musst du alle Abhängigkeiten zeigen, und ggf versuchen den Code darin auch soweit zu ändern bis der Fehler genauer lokalisiert ist. Passiert das zb bei einem import etc.
Antworten