Jak odpowiedzieć na nowy QgsMessageBar „Completed Task” w Pythonie?

12

Naprawdę dziwię się, jakie ogromne kroki podjął rozwój QGIS w ostatnich miesiącach. Nowy zestaw ikon, ulepszony kompozytor wydruku i wiele innych zmian, które można zobaczyć w QGIS 2.0, są naprawdę niesamowite!

Wśród wielu innych fajnych ulepszeń jest też ten fajny niebieski pasek zadań, który wydaje mi się bardzo atrakcyjny. Tekst mówi: Zapisz zakończone: Eksport do pliku wektorowego zakończony

Czy możliwe jest zajęcie się tym paskiem w pythonie dla skryptów i wtyczek (na przykład, aby wyświetlić mały komunikat po zakończeniu obliczeń)? Zadaję to pytanie tutaj, ponieważ uważam, że wielu programistów QGIS odwiedza również tę stronę pytań i odpowiedzi.

PS: Pasek jest widoczny tylko w QGIS dev i tylko dla niektórych operacji.

Kulik
źródło

Odpowiedzi:

14

Z pewnością jest to:

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

ostatni argument to limit czasu w sekundach, jeśli nie zostanie podany, pozostanie, dopóki użytkownik go nie zamknie.

Możesz nawet dodać własną kontrolę do paska komunikatów:

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

wprowadź opis zdjęcia tutaj

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

Nathan W.
źródło
@Nathan używam QProgressBar zamiast QComboBox. nie jestem w stanie wyrównać etykiety paska postępu z prawej strony, obecnie jest wyświetlana na środku paska postępu z symbolem%.
venkat
@venkat to styl paska postępu. Spójrz na arkusze stylów Qt, jak to zmienić, albo może istnieć właściwość label.
Nathan W
@Nathan już zadałem pytanie na ten temat, ale jak dotąd nie otrzymałem żadnej odpowiedzi. uprzejmie sprawdź ten link. tam wyjaśniłem zrzut ekranu i kod źródłowy. stackoverflow.com/questions/16434215/…
venkat
@venkat odpowiedział tam za ciebie
Nathan W