2014-10-05 7 views
0

GUI 응용 프로그램을 만드는 방법과 그것을 시작한 콘솔에서 상호 작용하는 방법을 궁금합니다.대화 형 Python - GUI 메인 루프와 대화 형 콘솔 유지

예를 들어, PyQt에서 GUI를 만들고 콘솔에서 작업하고 싶습니다.

import sys 
from PyQt4 import QtGui 

def main(): 
    app = QtGui.QApplication(sys.argv) 
    w = QtGui.QWidget() 
    w.show() 
    sys.exit(app.exec_()) 

if __name__ == '__main__': 
    main() 

python -i example.py으로 실행되는 콘솔이 차단 :이 호출 기능을 위해 응용 프로그램을 다시 시작하지 않고 설정을 테스트하기 위해 또한 큰 프로젝트에있을 수 등이 여기에

는 PyQt는을 사용하여 간단한 예입니다 메인 루프가 실행되는 한.

GUI가 실행되는 동안 어떻게 w.resize(100,100)으로 전화 할 수 있습니까?

ipython --gui=qt4 

ipython --help 또는 참조 :

답변

0

작전은, 가장 쉬운 방법은 사용하는 IPython입니다

Execute Python code from within PyQt event loop

+0

'QTimer.singleShot' 메서드는 런타임 중에 미리 정의 된 함수 만 excecute 할 수 있습니다. 콘솔이 여전히 차단되어있어 콘솔과의 상호 작용을 허용하지 않습니다. 나는 그것을 오해하고 있습니까? – Merlin

0

에 대한 스택에 게시물이

전에 잘못된 대답을 게시 더 많은 옵션을 보려면 online documentation (예 : gtk, tk 등).

+0

사용 방법에 대한 예를 제공해 주시겠습니까? qt4 GUI를 사용하여 Ipyton을 실행할 때 필자의 게시물에서 예제를 복제 할 수 없습니다. QtGui를 가져올 수 없지만 미리 정의 된 QtGui를 사용할 수 없습니다. – Merlin

+0

가져 오기 오류가 발생하면 PyQt가 PYTHONPATH에 있는지 확인하십시오. 당신이 우분투/debian에 있다면'apt-get install python-qt4 ipython'을 사용하여 pyqt와 ipython을 모두 설치할 수 있습니다. 그런 다음'--gui = qt4'를 사용하여 쉘을 시작하고 Qt 코드 테스트를 시작할 수 있습니다. 'w.show()'를 입력하면 블로킹하지 않고 즉시 윈도우가 나타납니다 (ipython이 이미 그렇게했기 때문에'app.exec _()'를 실행할 필요가 없습니다). – tyrion