Korrekter Weg zwei Programme nacheinander zu starten
Verfasst: Donnerstag 25. April 2019, 11:03
Hallo Allerseits,
ich hätte gerne vom Prinzip her ein Starterscript, welches ein zweites Script mit Dialog startet, dieses führt per git ein Update durch, und anschließend soll mein Hauptprogramm gestartet werden.
Mein Starterscript schaut dabei in etwa so aus:
updater.py:
main.py:
Wenn ich jetzt app.exec_() in mein Starterscript verschieben würde wird main.py nicht gestartet, nachdem der updater fertig ist, sondern fast zeitgleich.
So wie ich das oben habe scheint mir das nicht richtig zu laufen. Am liebsten wäre mir, wenn die zwei Programme wirklich komplett separate voneinander starten, also beide haben ihr QApplication. Aber selbst ein QApplication.quit() reicht nicht aus. Bekomme da jedes mal eine Fehlermeldung dass nur eine QApplication Instanz gestartet werden darf.
Wie würde man das denn richtig machen?
ich hätte gerne vom Prinzip her ein Starterscript, welches ein zweites Script mit Dialog startet, dieses führt per git ein Update durch, und anschließend soll mein Hauptprogramm gestartet werden.
Mein Starterscript schaut dabei in etwa so aus:
Code: Alles auswählen
import sys
from time import sleep
from modules import main, updater
if __name__ == "__main__":
if len(sys.argv) == 1:
try:
updater.start_updater()
except ImportError as e:
print('Error in git module:\n{}'.format(e))
sleep(0.3)
main.start_main()
Code: Alles auswählen
...
def start_updater():
app = QApplication(sys.argv)
update = UpdateFrame()
update.window.show()
app.exec_()
Code: Alles auswählen
...
def start_main():
app = QApplication.instance()
if app is None:
app = QApplication(sys.argv)
main_window = MainForm()
app.aboutToQuit.connect(main_window.quit_application)
app.exec_()
So wie ich das oben habe scheint mir das nicht richtig zu laufen. Am liebsten wäre mir, wenn die zwei Programme wirklich komplett separate voneinander starten, also beide haben ihr QApplication. Aber selbst ein QApplication.quit() reicht nicht aus. Bekomme da jedes mal eine Fehlermeldung dass nur eine QApplication Instanz gestartet werden darf.
Wie würde man das denn richtig machen?