È possibile mostrare il nostro messaggio personalizzato nella barra di stato di QGIS usando Python?


14

C'è un modo per mostrare il nostro messaggio personalizzato nella barra di stato di Qgis usando Python? Proprio come in ArcgisIApplication.statusbar.message(0) = "Please wait..."

come quello c'è qualche opzione per mostrare la barra di avanzamento in Qgis come IApplication.progressbar.show()

Risposte:


34

Barra di stato

Esiste iface.mainWindow (). StatusBar () che restituisce un QStatusBar

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

inserisci qui la descrizione dell'immagine

messagebar

A partire da QGIS 2.0 c'è anche QgsMessageBar che è in grado di visualizzare messaggi discreti

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

inserisci qui la descrizione dell'immagine

Avanzate

La barra dei messaggi può anche mostrare qualsiasi QWidget (come una QProgressBar ) con un pulsante di chiusura e un timeout (5 secondi nell'esempio).

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 )

inserisci qui la descrizione dell'immagine

Maggiori informazioni su QgsMessageBar sono disponibili in questa risposta di NathanW Come affrontare il nuovo QgsMessageBar "Task-completato" in Python? Grazie per aver segnalato Curlew

eredità

Nella console python per QGIS <1.9 sarebbe:

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

Grazie mille Matthias ... c'è qualche opzione per progressbar?
Venkat,

In QgsMessageBar puoi visualizzare qualsiasi tipo di widget. Non saprei che questo è possibile nella barra di stato.
Matthias Kuhn,

Sono molto nuovo di qgis e python .. potresti per favore farmi un esempio per QgsMessageBar? e qual è il significato dell'uso del prefisso 'u' in "Hello world"
venkat,

Il prefisso u è per le stringhe unicode. Funzionerà anche senza questo. Per QgsMessageBar devi ottenere l'attuale versione di sviluppo di QGIS o attendere il rilascio di 2.0.
Matthias Kuhn,

3
Vedi anche la risposta di Nathans su come inviare
Chiurlo
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.