파이썬을 사용하여 QGIS 상태 표시 줄에 사용자 정의 메시지를 표시 할 수 있습니까?


14

파이썬을 사용하여 Qgis 상태 표시 줄에 사용자 정의 메시지를 표시하는 방법이 있습니까? arcgis에서와 마찬가지로IApplication.statusbar.message(0) = "Please wait..."

Qgi에서 진행률 표시 줄을 표시하는 옵션이 있습니다. IApplication.progressbar.show()

답변:


34

상태 표시 줄

iface.mainWindow (). 상태 표시 () 반환 QStatusBar은

iface.mainWindow().statusBar().showMessage( u"Hello World" )

여기에 이미지 설명을 입력하십시오

메시지 바

QGIS 2.0부터는 눈에 잘 띄지 않는 메시지를 표시 할 수있는 QgsMessageBar 도 있습니다

iface.messageBar().pushInfo(u'My Plugin says', u'Hey there')

여기에 이미지 설명을 입력하십시오

많은

메시지 표시 줄 에는 닫기 버튼과 시간 제한 (예 : 5 초)이있는 QWidget (예 : QProgressBar )이 표시 될 수 있습니다 .

from PyQt4.QtGui import QProgressBar
from qgis.gui import QgsMessageBar
msgBar = iface.messageBar()

pb = QProgressBar( msgBar )
msgBar.pushWidget( pb, QgsMessageBar.INFO, 5 )

msg = msgBar.createMessage( u'Hello World' )
msgBar.pushWidget( msg, QgsMessageBar.WARNING, 5 )

여기에 이미지 설명을 입력하십시오

QgsMessageBar에 대한 자세한 내용은 NathanW의 답변에서 찾을 수 있습니다 . Python에서 새로운 "작업 완료"QgsMessageBar를 해결하는 방법은 무엇입니까? Curlew를 지적 해 주셔서 감사합니다

유산

QGIS <1.9의 Python 콘솔에서 다음과 같습니다.

qgis.utils.iface.mainWindow().statusBar().showMessage( u"Hello World" )

고마워요 Matthias .. 진행률 표시 줄에 대한 옵션이 있습니까?
venkat

QgsMessageBar에서는 모든 종류의 위젯을 표시 할 수 있습니다. 상태 표시 줄에서 이것이 가능하다는 것을 알지 못했습니다.
마티아스 쿤

나는 qgis와 python에 매우 익숙하다. QgsMessageBar의 예를 들어 주시겠습니까? "Hello world"에서 'u'접두사를 사용하는 의미는 무엇입니까
venkat

u 접두사는 유니 코드 문자열을위한 것입니다. 이것 없이도 작동합니다. QgsMessageBar의 경우 QGIS의 현재 개발 버전을 얻거나 2.0 릴리스를 기다려야합니다.
마티아스 쿤

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.