Наличие приложения PyQt, контролирующего все. Как использовать реактор? - PullRequest
1 голос
/ 02 июля 2010

У меня есть приложение django, обслуживаемое через Twisted, которое также обслуживает другие сервисы (в основном три сокета).

Мне нужно, чтобы оно работало под Windows, и я решил написать приложение PyQt4, котороедействует как Apache Service Monitor для windows.

Мне не удалось подключить витой реактор к реактору PyQT, поэтому любые подсказки по этому поводу тоже приветствуются.

Теперь у меня есть такая архитектура:

  • QMainWindow , которая в __ init __ () имеет функцию log.addObserver (callBack) и виджет.
  • Twisted инициализатор класс, который расширяет QtCore.QThread и работает в другом потоке.
  • приложение django , которое работает через Twisted.

Мне нужно понять, как запустить реактор, потому что вызывать реактор.start () из QtCore.QThread не работает вообще, давая мне:

exceptions.ValueError: signal only works in main thread

Также я спрашиваю ваше мнение по поводу дизайна приложений, делайтеэто имеет смысл для вас?

1 Ответ

1 голос
/ 02 июля 2010

Я не уверен, что полностью понимаю ваш дизайн, но я могу сказать, что вам нужно использовать только один реактор в приложении.Реактор является основной (событийной) петлей приложения.И, я думаю, этот реактор должен быть QTReactor в вашем случае.

...