Думаю, я нашел решение. Изменение кода таким образом дает желаемый ответ
import sys
from PyQt5.QtWidgets import (QMainWindow, QLabel, QGridLayout, qApp,
QApplication, QWidget, QPushButton)
from PyQt5.QtCore import QSize, Qt
class HelloWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Hello world")
centralWidget = QWidget()
self.setCentralWidget(centralWidget)
title = QLabel("Hello World from PyQt")
title.setAlignment(Qt.AlignCenter) # <---
gridLayout = QGridLayout(centralWidget)
gridLayout.addWidget(title, 0, 0)
if __name__ == "__main__":
app = QApplication(sys.argv)
mainWin = HelloWindow()
mainWin.show()
timer = QTimer()
timer.timeout.connect(lambda: app.quit())
timer.start(100)
sys.exit( app.exec_() )
Проблема здесь в том, что у нас еще нет настроенных событий Python. Таким образом, наше событие l oop никогда не обрабатывает интерпретатор Python, и поэтому наш сигнал, доставленный процессу Python, никогда не обрабатывается. Следовательно, наш процесс Python никогда не увидит сигнал, пока мы не нажмем кнопку выхода в окне приложения Qt. (источник: https://machinekoder.com/how-to-not-shoot-yourself-in-the-foot-using-python-qt/)