เป็นไปได้ไหมที่จะแสดงข้อความที่กำหนดเองของเราในแถบสถานะ QGIS โดยใช้ python?


14

มีวิธีแสดงข้อความที่กำหนดเองของเราในแถบสถานะของ Qgis โดยใช้ python หรือไม่? เหมือนกับในอาร์กิจิสIApplication.statusbar.message(0) = "Please wait..."

เช่นนั้นจะมีตัวเลือกใด ๆ ที่จะแสดงแถบความคืบหน้าใน Qgis เช่น IApplication.progressbar.show()

คำตอบ:


34

แถบสถานะ

มีiface.mainWindow (). statusBar ()ซึ่งส่งคืนQStatusBar

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

ป้อนคำอธิบายรูปภาพที่นี่

MessageBar

เริ่มต้นจาก QGIS 2.0 นอกจากนี้ยังมีQgsMessageBarซึ่งสามารถแสดงข้อความที่ไม่สร้างความรำคาญ

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

ป้อนคำอธิบายรูปภาพที่นี่

สูง

แถบข้อความยังสามารถแสดง QWidget ใด ๆ (เช่นQProgressBar ) ด้วยปุ่มปิดและการหมดเวลา (ตัวอย่าง 5 วินาที)

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 วิธีการจัดการ QgsMessageBar "งานที่เสร็จสมบูรณ์" ใหม่ใน Python? ขอบคุณสำหรับการชี้ให้เห็น Curlew

มรดก

ใน python console สำหรับ QGIS <1.9 จะเป็น:

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

ขอบคุณมาก Matthias .. มีตัวเลือกใดสำหรับแถบความคืบหน้า?
venkat

ใน QgsMessageBar คุณสามารถแสดงวิดเจ็ตชนิดใดก็ได้ ฉันไม่ทราบว่าเป็นไปได้ในแถบสถานะ
Matthias Kuhn

ฉันยังใหม่กับ qgis และ python .. คุณช่วยยกตัวอย่าง QgsMessageBar ให้ฉันได้ไหม และความหมายของการใช้คำนำหน้า 'u' ใน "Hello world" คืออะไร
venkat

คำนำหน้า u ใช้สำหรับสตริง Unicode มันจะทำงานได้โดยปราศจากสิ่งนี้ สำหรับ QgsMessageBar คุณจะต้องได้รับ QGIS เวอร์ชันพัฒนาปัจจุบันหรือรอการเปิดตัว 2.0
Matthias Kuhn

3
โปรดดูเพิ่มเติมที่ Nathans ตอบคำถามเกี่ยวกับวิธีผลักดันวิดเจ็ตไปยังแถบข้อความใหม่gis.stackexchange.com/questions/57067/…
Curlew
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.