PyQt run time issue

后端 未结 3 415
面向向阳花
面向向阳花 2020-12-18 12:24

I want my code to run by showing the qtwidget and then running the forloop, but it runs the forloop then shows my widget to me. Why is this?

class tes(QWid         


        
相关标签:
3条回答
  • 2020-12-18 12:47

    Add QApplication.processEvents() before loop. Your widget will be shown, but unresponsive. To make application responsive, add processEvents() calls to some steps of your loop.

    Example:

    def __init__(self):
        super(tes, self).__init__()
        self.initUI()
        QApplication.processEvents()
        for i in range (1000000):
            if not i % 3:  # let application process events each 3 steps.
                QApplication.processEvents()
            print("s")
    
    0 讨论(0)
  • 2020-12-18 13:06

    It's because you run app.exec_() after the for loop executes during the tes object initialization.

    0 讨论(0)
  • 2020-12-18 13:07

    The widget is only shown once the application is running, not when its initialised. What exactly are you trying to do in the loop? It might be better to connect it to a signal or handle it in an event, but it all depends what you're trying to acheive.

    0 讨论(0)
提交回复
热议问题