QGIS 프로그램 안에서 사용자에게 어떤 메세지를 전달하고자 할 때의 코드의 예는 다음과 같습니다.
iface.messageBar().pushMessage("안녕하세요, pyQGIS")
실행 결과는 QGIS의 맵영역 상단에 표시되며 다음과 같습니다.
iface의 messageBar를 통한 pushMessage 매서드는 더 많은 인자를 받을 수 있습니다. 다음 코드를 보면요.
iface.messageBar().pushMessage( "환영", "안녕하세요, pyQGIS", level=Qgis.Success, duration=5 )
아래의 실행 결과를 통해 각 인자의 의미를 유추할 수 있습니다.
세번째와 네번째 인자에 대해 언급하면 먼저 level 인자는 4가지 값을 가질 수 있습니다. Qgis.Critical, Qgis.Warning, Qgis.Info, Qgis.Success이며 각각 에러 메세지, 경고 메세지, 정보 메세지, 성공 메세지에 대한 아이콘을 표시해 줍니다. 그리고 duration은 메세지를 몇초간 표시하고 사라지게 할지 지정할 수 있습니다.
QGIS에서는 시간이 오래 걸리는 연산이 많이 수행됩니다. 이때 수행되는 연산의 진행율을 사용자에게 알려주는 코드는 다음과 같습니다.
import time progressMessageBar = iface.messageBar().createMessage("처리 메세지") progress = QProgressBar() progress.setMaximum(100) progressMessageBar.layout().addWidget(progress) iface.messageBar().pushWidget(progressMessageBar, Qgis.Info) for i in range(100): time.sleep(0.01) progress.setValue(i + 1)
time.sleep(0.01)을 100번 호출하므로 1초에 걸쳐 최대 100까지 값을 증가시켜 진행율을 표시합니다. 실행결과는 다음과 같습니다.