2012-09-26 3 views
4

내 pyqt gui에 클릭하면 몇 가지 긴 계산을 수행하는 함수가 실행되는 버튼이 있습니다.Pyqt : 함수에서 qtextedit에 '동적으로 추가'

print "finished calculating task1 going on to task2" 

그래서 난의는 예를 들어 진행 막대가 프로그램 진행 상황을 표시하는 말을하자이 필요하지 않았다처럼 인쇄 문을 사용하여이 함수 내부와 같은 인쇄 문이 많이 있었다. 내 GUI에은 QTextEdit 위젯을 추가하여 그 함수의 모든 인쇄 문을 대체 :

MyTextEdit.append('message')

MyTextEdit은은 QTextEdit 위젯입니다

message 내가 함수가 인쇄하고자하는 메시지입니다.

예 : 나 버튼을 클릭 기능이 실행되면

MyTextEdit.append('finished calculating task1 going on to task2') 
task2 #lengthy second task 
MyTextEdit.append('finished calculating task2 going on to task3') 
task3 #lengthy third task 

, 즉 함수 내 모든 계산을 마무리해야하고 모든 메시지는은 QTextEdit 위젯에 추가된다.

나는 MyTextEdit.append('message')이 실행될 때마다 즉시 실행되며 위젯은 모든 다른 메시지와 함께 바로 그 순간에 메시지를 표시 할 것이라고 생각했습니다.

내가 뭘 잘못하고 있니?

난 그냥 당신은 정적 메서드 QCoreApplication.instance

이 의지 QCoreApplication의 인스턴스를 얻을 수있는 각 append

QCoreApplication.processEvents에 전화를 걸이 post

답변

3

를 읽고 이렇게 생각을했다 명령이 모든 보류중인 이벤트를 처리 할 때 Qt가 실행중인 작업을 완료하기 전에 GUI를 "새로 고치십시오".

+0

내가 파이썬과 pyqt 초보자이기 때문에 이것이 왜 효과가 있었는지에 대한 자세한 정보를 추가 할 수 있습니까? – CosmoSurreal

+1

더 자세히 설명하는 또 다른 단락을 추가하려고 시도했습니다. –

+0

Thanks @FabioDiniz – CosmoSurreal