Я бы атаковал это немного по-другому. Я хотел бы получить pyDispatcher, с помощью которого вы можете определить, что qt называет «слотами и сигналами», или вы можете знать, что это просто «сигналы», а не ось SIGNAL. Эти сигналы, когда «испускаются» или выполняют серию или набор функций, вы прикрепили к сигналу. Слоты - это функции, которые выполняются, диспетчер ведет словарь слабых ссылок на слоты и вызывает их с аргументами, которые вы посылаете своим сигналом.
См. примеры для pydispatch , чтобы увидеть, как все это сочетается.
, но вы бы сделали что-то вроде: dispatcher.connect(reciever, signal, sender)
или connect(game.gui.Gui.set_progress, 'update_progress', island.Class)
, тогда в __iter__
вы бы отправили сигнал типа send('update_progress', sender=island.Class, progress=progress)
, это вызовет update_progress с kwargs progress=progress
. Таким образом, вы можете изменить прогресс обновления как статический метод и напрямую обновлять графический интерфейс.