У меня есть проблема, на которую я не могу найти ответ.Сигнал PySide2 не попал между потоками с объектами
Я работаю над приложением GUI, разработанный в Python и его библиотека пользовательского интерфейса: PySide2
(Qt обертки для Python)
меня тяжелую функция вычисления я хочу поставить на другую нить, чтобы не замерзнуть мой пользовательский интерфейс. Ui должен показать «Загрузка», а когда функция закончена, получить от нее ее результаты и обновить интерфейс.
Я пробовал много разных кодов, много примеров работают на других, но не на меня, это ошибка PySide2? (Для Exemple это почти то, что я хочу сделать: Updating GUI elements in MultiThreaded PyQT)
Мой код:
class OtherThread(QThread):
def __init__(self):
QThread.__init__(self)
def run(self):
print 'Running......'
self.emit(SIGNAL("over(object)"), [(1,2,3), (2,3,4)])
@Slot(object)
def printHey(obj):
print 'Hey, I\'ve got an object ',
print obj
thr = OtherThread()
self.connect(thr,SIGNAL("over(object)"),printHey)
thr.start()
Мой код работает, если я использовать примитивы, такие как bool
или int
, но не с объектом. Я вижу «Бег ...», но никогда не остальное.
Надежда кто-то может просветить меня
Привет Большое спасибо, что я искал. Странно, что так я пробовал в первый раз, но это не сработало. Я должен был пропустить что-то, что я думаю x) –