2013-07-30 12 views
0

저는 pyxhook을 사용하여 키보드 이벤트를 연결하고 pythonhook을 사용하여 분당 숫자를 업데이트하는 작은 파이썬 유틸리티를 작성했습니다.파이썬 응용 프로그램에 간단한 비대화 형 GUI를 추가하려면 어떻게해야합니까?

지금은 단지 2 초마다 터미널에 인쇄됩니다.

어떻게 항상 맨 위에있는 GUI 상자에 표시 할 수 있습니까?

tkinter를 가지고 놀려고했지만 mainloop() 함수가 내 키 수신기와 타이머를 좋아하지 않습니다. 그것은 gui 또는 내 이벤트 처리기를 실행할 수 있지만 둘 다를 실행할 수있는 것 같습니다.

다른 창에서 이벤트를 캡처하고 싶기 때문에 불행히도 tkinter에서 keyhandler를 사용할 수 없다고 생각합니다.

제안 사항?

+0

당신은 할 수 구성 요소를 별도의 스레드에 넣고 하나 이상의 대기열을 통해 서로 통신하도록하십시오. 필요합니다. – martineau

+0

필자의 첫 번째 생각은 pyxhook 데이터를 파이프에 쓰고 Tkinter에서 읽는 것이었다. 재미있게도 빠른 검색으로 [스레드 및 대기열]이 생성되었습니다 (http://mail.python.org/pipermail/python-list/2012-December/637093.html). [Python과 Tkinter를 사용하여 스크립트 출력을 캡처하기] (http://www.executionunit.com/blog/2012/10/26/using-python-and-tkinter-capture-script-output/)도 있지만 어떻게 pyxhook 이벤트 처리기로 재생되는지 모르겠다. –

+0

이 정보는 http://stackoverflow.com/questions/2883205/freezing-a-dual-mode-gui-and-console-application-using-cx-freeze에서 확인할 수 있습니다. 도움이 될 수 있습니다. – cfh008

답변

1

나는 tk에서 이것을하는 법을 알지 못한다. 그러나 나는 최근에 PySide를 사용하고 있었고, 당신이 그것을 사용할 수 있다는 것을 안다.

pyside에서 수행하는 한 가지 방법은 pyside에서 사용할 수있는 Qt 신호 & 슬롯 메커니즘을 사용하여 통신하는 별도의 스레드에서 실행되는 두 개의 클래스로 이루어집니다. 한 클래스는 QThread &을 서브 클래 싱하여 기존 코드 &을 실행하는 메소드를 통해 신호를 통해 Ui 클래스에 데이터를 전달합니다. 두 번째 클래스는 당신의 GUI 요소를위한 것입니다. 첫 번째 클래스의 인스턴스를 호출하고 & 슬롯의 신호를 연결 한 다음 & 디스플레이 시작을 시작합니다.

자원 당신은 pyside 경로를 이동하는 경우 :이 사이트 GitHub의의 pyside의 예는

  • 검색에

  • 관련 문제