У меня есть небольшое приложение без графического интерфейса, которое в основном запускает цикл обработки событий, подключает сигнал к слоту и излучает сигнал.Я хотел бы, чтобы слот остановил цикл обработки событий и вышел из приложения.
Однако приложение не завершило работу.
У кого-нибудь есть идеи, как выйти из цикла обработки событий?
Python 3.7.0
Qt для Python (PySide2) 5.12.0
import sys
from PySide2 import QtCore, QtWidgets
class ConsoleTest(QtCore.QObject):
all_work_done = QtCore.Signal(str)
def __init__(self, parent=None):
super(ConsoleTest, self).__init__(parent)
self.run_test()
def run_test(self):
self.all_work_done.connect(self.stop_test)
self.all_work_done.emit("foo!")
@QtCore.Slot(str)
def stop_test(self, msg):
print(f"Test is being stopped, message: {msg}")
# neither of the next two lines will exit the application.
QtCore.QCoreApplication.quit()
# QtCore.QCoreApplication.exit(0)
return
if __name__ == "__main__":
app = QtCore.QCoreApplication(sys.argv)
mainwindow = ConsoleTest()
sys.exit(app.exec_())