มีวิธีแสดงข้อความที่กำหนดเองของเราในแถบสถานะของ Qgis โดยใช้ python หรือไม่? เหมือนกับในอาร์กิจิสIApplication.statusbar.message(0) = "Please wait..."
เช่นนั้นจะมีตัวเลือกใด ๆ ที่จะแสดงแถบความคืบหน้าใน Qgis เช่น IApplication.progressbar.show()
มีวิธีแสดงข้อความที่กำหนดเองของเราในแถบสถานะของ Qgis โดยใช้ python หรือไม่? เหมือนกับในอาร์กิจิสIApplication.statusbar.message(0) = "Please wait..."
เช่นนั้นจะมีตัวเลือกใด ๆ ที่จะแสดงแถบความคืบหน้าใน Qgis เช่น IApplication.progressbar.show()
คำตอบ:
มีiface.mainWindow (). statusBar ()ซึ่งส่งคืนQStatusBar
iface.mainWindow().statusBar().showMessage( u"Hello World" )
เริ่มต้นจาก 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" )