allen noch ein erfolgreiches neues Jahr mit vielen in Erfüllung gehenden Wünschen !
Ich bastle an einer Applikation, zu der der User verschiedene Ausgabemodule einhängen kann (Logger, Konsole, externes Display usw.) Nun wollte ich auch Klasse bereitstellen, mit der man ohne Änderungen am Hauptprogramm eine QtGUI hinzufügen kann, die neben der Anwendung in einem sepraten Thread läuft und bei bestimmten Triggerungen eine entsprechende Ausgabe fährt. Nun bekomme ich es noch nicht einmal hin die GUI (sicher im Unterschied zur übliche Verwendung) in einem QtThread anzuwerfen, sprich das Qt Fenster wird angezeigt und die Schleife in der Main beginnt zu laufen ...
Das unten beigefügte Beispiel zeigt das genau gegenteilige Verhalten, die for Schleife wartet, bis das Fenster geschlossen wurde.
Bin wie immer dankbar für alle Hinweise und Kritiken
Poseidonius
Code: Alles auswählen
from PyQt4 import QtCore, QtGui
from PyQt4.QtCore import QThread
import sys
import time
class QtFrame(QtGui.QMainWindow, QThread):
def __init__(self):
QThread.__init__(self)
QtGui.QMainWindow.__init__(self)
self.setWindowTitle("Window started in a separate thread")
self.resize(300, 300)
def run(self, app):
self.show()
print "show gui"
app.exec_()
print "leaving thread"
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
ui=QtFrame()
ui.run(app)
for i in range(3):
print "main running", " -- ", i
time.sleep(1)