Uploaded image for project: 'Qt for Python'
  1. Qt for Python
  2. PYSIDE-803

QThread Freezes GUI

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • P1: Critical
    • 5.14.2
    • 5.11.1
    • PySide
    • None
    • Python 3.6, PySide2 5.11.1, PyQt5 5.11.2. This problem would occur in both Linux (Kubuntu 18.04.1) and Windows 10 (so far as I have tested).
    • All
    • 14299e5f5 (dev), 619a44493 (6.5)

    Description

      It is not completely freezing. However, when I do some heavy tasks in QThread, the GUI responds slowly. For instance,

       

      import sys
      from PySide2.QtCore import QThread
      from PySide2.QtWidgets import (QApplication, QWidget, QPushButton, QComboBox, QVBoxLayout)
      
      class Task(QThread):
          def run(self):
              # some heavy tasks
              print('task started')
              k = 0
              for i in range(10000):
                  for j in range(50000):
                      k += 1
              print('task finished')
      
      class Gui(QWidget):
          def __init__(self):
              super().__init__()
              layout = QVBoxLayout()
              button = QPushButton('click me')
              button.clicked.connect(self.do_task)
              combobox = QComboBox()
              combobox.addItems(['1', '2', '3', '4', '5'])
              layout.addWidget(button)
              layout.addWidget(combobox)
              self.setLayout(layout)
      
          def do_task(self):
              self.thread = Task()
              self.thread.start()
      
      if __name__ == '__main__':
          app = QApplication(sys.argv)
          window = Gui()
          window.show()
          sys.exit(app.exec_())
      

      Here is the example GIF animation.


      However, if I use PyQt5 to run the script (replacing PySide2 module), the GUI response will not delay at all.

      Attachments

        Issue Links

          For Gerrit Dashboard: PYSIDE-803
          # Subject Branch Project Status CR V

          Activity

            People

              ctismer Christian Tismer
              alan13wake Sean Wu
              Votes:
              10 Vote for this issue
              Watchers:
              16 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes