Wie adressiere ich die neue QgsMessageBar "Task-Completed" in Python?

12

Ich bin wirklich erstaunt, welche großen Schritte die QGIS-Entwicklung in den letzten Monaten gemacht hat. Das neue Iconset, der verbesserte Print Composer und viele weitere Änderungen in QGIS 2.0 sind wirklich großartig!

Neben vielen anderen coolen Verbesserungen gibt es auch diese schicke blaue Taskleiste, die ich sehr ansprechend finde. Text sagt: Speichern beendet: Export in Vektordatei beendet

Ist es möglich, diese Leiste in Python für Skripte und Plugins zu adressieren (um beispielsweise nach beendeten Berechnungen eine kleine Nachricht anzuzeigen)? Ich stelle diese Frage hier, weil ich glaube, dass viele QGIS-Entwickler auch diese Q & A-Site besuchen.

PS: Die Leiste ist nur in QGIS dev und nur für einige Operationen sichtbar.

Brachvogel
quelle

Antworten:

14

Es ist sicher:

iface.messageBar().pushMessage("Header","MessageBody", QgsMessageBar.WARNING, 2)

Das letzte Argument ist eine Zeitüberschreitung in Sekunden. Wenn es nicht angegeben wird, bleibt es so lange bestehen, bis der Benutzer es schließt.

Sie können der Nachrichtenleiste sogar ein eigenes Steuerelement hinzufügen:

widget = iface.messageBar().createMessage("Test","Testing")
combo = QComboBox()
widget.layout().addWidget(combo)
iface.messageBar().pushWidget(widget, QgsMessageBar.WARNING)
combo.addItems("ASD")

Bildbeschreibung hier eingeben

http://www.qgis.org/api/classQgsMessageBar.html#a0b305c7215d75243b4237c299f0f7723

Nathan W
quelle
@ Nathan Ich verwende QProgressBar anstelle von QComboBox. Ich kann die Beschriftung der Fortschrittsanzeige auf der rechten Seite nicht ausrichten. Derzeit wird sie in der Mitte der Fortschrittsanzeige mit dem% -Symbol angezeigt.
Venkat
@venkat das ist der Stil des Fortschrittsbalkens. Sehen Sie sich in Qt-Stylesheets an, wie Sie dies ändern können, oder es gibt möglicherweise eine label -Eigenschaft.
Nathan W
@ Nathan Ich habe die Frage dazu bereits gestellt, aber bisher habe ich keine Antwort bekommen. Bitte überprüfen Sie diesen Link. Dort erklärte ich mit Screenshot und Quellcode. stackoverflow.com/questions/16434215/…
venkat
@ Venkat antwortete dort für Sie
Nathan W