2016-05-06 11 views
0

Я привязываю QTread к моему коду Python. Но, к сожалению, я делаю что-то неправильно, потому что графический интерфейс приостановлен на несколько секунд после нажатия кнопки. Что я делаю неправильно?Как применить QTread в коде python (suspend GUI)

class Window(QtGui.QMainWindow): 
    def __init__(self): 
     super(Window, self).__init__() 
     #... some lines of code 
    def home(self): 
     self.convertclass = ConvertClass() 
     btn_run = QtGui.QPushButton("Convert", self) 
     self.convertclass.trigger.connect(self.convert) 
     btn_run.clicked.connect(self.convertclass.convert) 
     #... some lines of code 
class ConvertClass(QtCore.QThread): 
    def __init__(self): 
     super(ConvertClass, self).__init__() 
    def convert(self): 
     #... some lines of code 

ответ

-1

Полагаю, что вы хотите, чтобы в потоке произошел долгий процесс.

Когда вы нажимаете кнопку, это означает, что когда поток должен быть запущен? Если это так, вызовите метод start().

Или вы начинаете тему как рабочий и отправляете рабочий элемент на него через очередь. В этом случае добавьте рабочий элемент в очередь при нажатии кнопки.

Как GUI знает, что нить завершила свою работу в вашем приложении?

+0

Это должен быть комментарий, а не ответ. –

+0

Я новичок в переполнении стека, почему комментарий, а не ответ? Действительно, пока я не ответил на достаточные вопросы, stackoverflow запрещает новым пользователям комментировать. –

+0

Да, вот как это работает, к сожалению, вам нужно сначала получить свои очки. Вы можете повторить это, чтобы ответить на исходный пост. –