Обнаружение модуля в python (который отправляет данные в поток GUI) - PullRequest
0 голосов
/ 03 января 2012

Итак, я написал это программное обеспечение, которое использовало 4 вкладки (теперь 8).Теперь каждая вкладка имеет свой собственный QThread, плюс один общий поток GUI, очевидно.Рабочие потоки (потоки вкладок) отправляют данные обратно в поток графического интерфейса, когда это требует обновления.Например, у меня есть текст statusBar в потоке графического интерфейса, который необходимо обновлять каждый раз, когда рабочий поток что-то делает.Для этого я использую SIGNAL / SLOT, и способ обнаружения входящего SIGNAL выглядит следующим образом:

def setStatus(self, status):
    #Defining SIGNAL sender
    self.sender = QObject().sender()        
    if "module1" in str(self.sender):
        self.module1CurrentStatus.setText(status)

Теперь это работает и все, но, как я уже сказал, программное обеспечение выросло из реализации 4вкладки для реализации 8 вкладок.Есть ли лучший способ реализовать это, вместо использования sender()?Я просто ищу что-то, что может быть написано только один раз для всех модулей, чтобы GUI автоматически знал, из какого потока пришел СИГНАЛ.Я знаю, что мог бы написать отдельный СИГНАЛ для каждого модуля, но я ничего не добился с этим.

Ответы [ 2 ]

0 голосов
/ 04 января 2012

Если я правильно понимаю ваши требования, вы можете использовать QSignalMapper для повторной передачи сигналов с идентификатором.

0 голосов
/ 03 января 2012

Имя модуля можно получить с помощью __name__, если только файл не запускается как скрипт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...