“QCoreApplication::exec: The event loop is already running”

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
kemc
User
Beiträge: 5
Registriert: Donnerstag 28. Mai 2015, 12:35
Wohnort: Münster

Hallo zusammen,

ich bin dabei eine Programm für meine Masterarbeit im Ingenieurbereich zu schreiben und habe etwas Probleme beim Verwenden des Programms außerhalb meiner IDE (PyCharm).

Das Programm besteht aus einer GUI und einem Modul zur Simulation von Wärmeströmen mittels Finite-Differenzen-Methode.
Die GUI wurde mit PyQt4 erstellt und verfügt über ein Matplotlib Widget zur Visualisierung von Berechnungsergebnissen. Das ganze funktioniert auch einwandfrei, bis zu dem Punkt, an dem ich eine Klasse aus einer anderen .py-Datei aufrufen möchte. Dann bekomme ich die Fehlermeldung: “QCoreApplication::exec: The event loop is already running” Innerhalb von PyCharm bekomme ich jedoch keine Fehlermeldung.
Diese Klasse verfügt lediglich über den Konstruktor und zwei weitere Methoden welche Schleifen enthalten.

Hier einmal einen Teil meiner main-Klasse der GUI:
[codebox=pys60 file=Unbenannt.txt]
from pyqt4 import QtGui
import Mainwindow
import Simulation # Enthält die Klasse "Sim2dinhomogen"

class Main(QtGui.QMainWindow):
def __init__(self):
QtGui.QMainWindow.__init__(self) # Initalisiert das UI
self.ui = Mainwindow.Ui_MainWindow()
self.ui.setupUi(self)
[/code]

Der Programmstart:
[codebox=pys60 file=Unbenannt.txt]
if __name__ == '__main__':
import sys
app = QtGui.QApplication.instance()
if app is None:
app = QtGui.QApplication(sys.argv)
window = Main()
window.show()
sys.exit(app.exec())
[/code]

Ein Teil der über die GUI aufgerufenen Klasse
[codebox=pys60 file=Unbenannt.txt]
class Sim2Dinhomogen:
"""
Finite-Difference-Class for 2dimensional simulations of rectangular inhomogeneous geometries
"""
def __init__(self, leftBC, rightBC, topBC, botBC, construction, tstart, nx, ny, nt, dt, HS, *args, **kwargs):
self.kwargs = kwargs

# physical parameters
self.leftBC = leftBC
self.rightBC = rightBC
self.topBC = topBC
self.botBC = botBC
self.construction = construction
self.tstart = tstart
[/code]

(Dies ist mein erster Beitrag in diesem Forum ;))

Vielen Dank für eure Hilfe :)
BlackJack

@kemc: An dem gezeigten Quelltext kann man das Problem soweit ich das sehe nicht nachvollziehen. Kannst Du ein minimales aber lauffähiges Beispiel zeigen, welches das Problem enthält?
kemc
User
Beiträge: 5
Registriert: Donnerstag 28. Mai 2015, 12:35
Wohnort: Münster

Hey,

ich habe den Fehler gefunden.
Ich hatte in der Methode Sim2D der importierten Klasse eine Sicherheitsabfrage mittels "input" hinterlegt, um vor Beginn der Schleife einige Parameter über die Konsole zu kontrollieren. Diese scheint das Problem gewesen zu sein. Trotzdem danke für dein Interesse an meinem Problem.

Liebe Grüße :)
Antworten