Если напрямую подкл. сигнал к слоту, то вызов происходит как будто в главном потоке…
Можно ли вызывать в Qthread.run и не костыль ли это: каждый раз Qthread.start дергать. ?
Просто сейчас примерный код такой код:
class MainForm(QWidget): signal = pyqtSignal(str) def __init__(self): QWidget.__init__(self) self.button = QPushButton(u'Запустить поток') self.button.clicked.connect(lambda: self.signal.emit('Нужная строка....')) class WorckThread(QThread): arg_ = '' def method(self): #Тут долгая блокирующая операция.... def run(self): if not self.isRunning(): self.exec_() self.method('Нужная строка....') class Main(QApplication): def __init__(self): ....... ....... ....... self.main_form = MainForm() self.worckthread = WorckThread() def start_block_thread(self): self.worckthread.arg_ = 'Нужная строка....' self.worckthread.run() if __name__ == '__main__': Main()
class Main(QApplication): def __init__(self): ....... ....... ....... self.main_form = MainForm() self.worckthread = WorckThread() self.main_form.button.connect( self.worckthread.method)