2010-07-02 2 views
1

저는 장거리 전화 서비스를 제공하는 Twisted를 통해 제공되는 장고 응용 프로그램 (주로 3 개의 소켓)을 제공합니다.PyQt 앱이 모두를 제어하고 있습니다. 어떻게 반응기를 사용합니까?

나는 창문 아래서 작업 할 필요가 있고, 나는 아파치 서비스 모니터과 비슷한 역할을하는 PyQt4 응용 프로그램을 작성하기로 결정했다.

나는 꼬인 원자로를 pyqt 적용 원자로에 연결할 수 없으므로 이에 대한 어떠한 힌트도 환영 할 만하다.

는 지금은 아키텍처의이 종류를했습니다 :

  • QMainWindow log.addObserver (콜백) 기능, 위젯을 가지고 __의 초기화 __에서,().
  • 꼬인 이니셜 라이저QtCore.QThread을 확장하고 다른 스레드에서 작동하는 클래스.
  • django 앱은 Twisted에서 실행됩니다.

내가 나에게주는 전혀 QtCore.QThread 작동에서 reactor.start()를 호출 렸기 때문에, 원자로를 실행하는 방법을 이해해야합니다 또한

exceptions.ValueError: signal only works in main thread 

내가 부탁 해요 당신의 응용 프로그램의 디자인에 대한 의견, 그것은 당신에게 의미가 있습니까?

답변

1

나는 당신의 디자인을 완전히 이해하고 있지는 않지만, 내가 말할 수있는 것은 어플리케이션에서 하나의 원자로 만 사용해야한다는 것입니다. 원자로는 응용 프로그램의 주요 (이벤트) 루프입니다. 그리고이 원자로는 귀하의 경우에 QTReactor이어야합니다.

+0

사실이긴하지만 실행하지 못했습니다. –

+0

한 가지 방법은 reactor.start()가 아닌 reactor.run()을 사용하여 원자로를 시작하는 것입니다. 게시 한 링크에서 * QT reactor demo *를 실행할 수 있습니까? , 나는이 데모에서 디자인의 기초를 말할 것입니다. – Etienne

+0

그 데모는 qt3을위한 것이 아니라 qt4를위한 것입니다, 슬프게도 –

관련 문제