Я не могу выйти из программы, просто закрыв окно pyqt5 - PullRequest
0 голосов
/ 27 января 2020

i Сделать программу для показа сообщения и через некоторое время изменить сообщение, но если вы закрываете программу, она не закрывает только закрытое окно. Пожалуйста, помогите, как закрыть все коды

Этот код:

from PyQt5.QtWidgets import *
from PyQt5 import QtCore,QtGui
from threading import Timer
class s:
    def UI(self, window):
        window.setFixedHeight(500)
        window.setFixedWidth(600)
        self.Label = QLabel(window)
        self.Label.setGeometry(0, 0, 600, 500)
        self.Label.setAlignment(QtCore.Qt.AlignCenter)
        self.Label.setStyleSheet('font-size:100px')
        def mone():
            self.Label.setText('Hello')
            Tim = Timer(3, mtwo)
            Tim.start()
        def mtwo():
            Tim = Timer(3, mthree)
            self.Label.setText('World')
            Tim.start()
        def mthree():
            Tim = Timer(1, mfour)
            self.Label.setText('To')
            Tim.start()
        def mfour():
            Tim = Timer(1.5, mfive)
            self.Label.setText('My')
            Tim.start()
        def mfive():
            Tim = Timer(10, mone)
            self.Label.setText('Program')
            Tim.start()

        mone()
    def pd(self):
        print('d')
if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)
    form = QMainWindow()
    sd = s()
    sd.UI(form)
    form.show()
    sys.exit(app.exec_())

1 Ответ

1 голос
/ 27 января 2020

Вы можете попробовать использовать QtCore.QTimer вместо threading.Timer, например (обратите внимание, что временной интервал в QTimer указан в мс)

def mone():
    self.Label.setText('Hello')
    QtCore.QTimer.singleShot(3000, mtwo)
def mtwo():
    QtCore.QTimer.singleShot(3000, mthree)
    self.Label.setText('World')
def mthree():
    QtCore.QTimer.singleShot(1000, mfour)
    self.Label.setText('To')
def mfour():
    QtCore.QTimer.singleShot(1500, mfive)
    self.Label.setText('My')
def mfive():
    QtCore.QTimer.singleShot(10000, mone)
    self.Label.setText('Program')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...