Bagaimana cara mengatasi QgsMessageBar "Lengkap-Tugas" dengan Python?

12

Saya benar-benar kagum dengan langkah besar apa yang telah dilakukan pengembangan QGIS dalam beberapa bulan terakhir. Ikon baru, komposer Cetak yang disempurnakan, dan banyak lagi perubahan untuk dilihat di QGIS 2.0 benar-benar luar biasa!

Di antara banyak perbaikan keren lainnya ada juga bilah tugas biru yang bagus, yang menurut saya sangat menarik. Teks mengatakan: Simpan selesai: Ekspor ke file vektor selesai

Apakah mungkin untuk mengatasi bilah ini dalam python untuk skrip dan plugin (misalnya untuk menampilkan pesan kecil setelah perhitungan selesai)? Saya mengajukan pertanyaan ini di sini, karena saya percaya bahwa banyak pengembang QGIS juga mengunjungi situs tanya jawab ini.

PS: Bilah ini hanya terlihat di dev QGIS dan hanya untuk beberapa operasi.

Curlew
sumber

Jawaban:

14

Pastilah itu:

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

arg terakhir adalah batas waktu dalam detik, jika tidak diberikan maka akan tetap sampai pengguna menutupnya.

Anda bahkan dapat menambahkan Anda sendiri kontrol ke bilah pesan:

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

masukkan deskripsi gambar di sini

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

Nathan W
sumber
@Nathan saya menggunakan QProgressBar bukan QComboBox. saya tidak dapat menyelaraskan label progressbar di sisi kanan, saat ini ditampilkan di tengah progressbar dengan simbol%.
venkat
@venkat adalah gaya bilah kemajuan. Lihat Qt stylesheet tentang cara mengubahnya, atau mungkin ada properti label.
Nathan W
@Nathan saya sudah mengajukan pertanyaan tentang ini tetapi saya tidak mendapatkan jawaban sejauh ini. silakan periksa tautan ini. ada yang saya jelaskan dengan tangkapan layar dan kode sumber. stackoverflow.com/questions/16434215/…
venkat
@venkat menjawab di sana untuk Anda
Nathan W