วิธีการจัดการ QgsMessageBar“ ภารกิจเสร็จสมบูรณ์” ใหม่ใน Python?


12

ฉันประหลาดใจจริง ๆ ว่าขั้นตอนใหญ่ ๆ ที่การพัฒนา QGIS เกิดขึ้นในช่วงหลายเดือนที่ผ่านมา ชุดไอคอนใหม่ตัวแต่งการพิมพ์ที่ได้รับการปรับปรุงและการเปลี่ยนแปลงอื่น ๆ อีกมากมายใน QGIS 2.0 นั้นยอดเยี่ยมมาก!

ท่ามกลางการปรับปรุงที่ยอดเยี่ยมอื่น ๆ อีกมากมายนอกจากนี้ยังมีแถบงานสีน้ำเงินที่ดีซึ่งฉันพบว่าน่าดึงดูดมาก ข้อความแจ้งว่า: บันทึกเสร็จสมบูรณ์: ส่งออกเป็นไฟล์เวกเตอร์เสร็จแล้ว

เป็นไปได้หรือไม่ที่จะกำหนดแถบนี้เป็นไพ ธ อนสำหรับสคริปต์และปลั๊กอิน (เช่นเพื่อแสดงข้อความเล็ก ๆ หลังจากการคำนวณเสร็จสิ้น)? ฉันถามคำถามนี้ที่นี่เพราะฉันเชื่อว่านักพัฒนา QGIS จำนวนมากยังเยี่ยมชมเว็บไซต์ถามตอบนี้

PS: แถบจะปรากฏเฉพาะใน QGIS dev และสำหรับการดำเนินการบางอย่างเท่านั้น

คำตอบ:


14

แน่ใจ:

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

หาเรื่องล่าสุดคือหมดเวลาในไม่กี่วินาทีถ้ามันไม่ได้มาจากนั้นก็จะอยู่จนกว่าผู้ใช้จะปิดมัน

คุณสามารถเพิ่มการควบคุมของคุณเองในแถบข้อความ:

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

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

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


@ นาธานฉันใช้ QProgressBar แทน QComboBox ฉันไม่สามารถจัดตำแหน่งป้ายชื่อแถบความคืบหน้าทางด้านขวาในขณะนี้มันแสดงอยู่ตรงกลางของแถบความคืบหน้ากับสัญลักษณ์%
venkat

@venkat ที่เป็นลักษณะของแถบความคืบหน้า ดูที่สไตล์ชีทของ Qt เกี่ยวกับวิธีการเปลี่ยนแปลงหรืออาจมีคุณสมบัติป้ายกำกับ
นาธาน W

@ นาธานฉันตั้งคำถามเกี่ยวกับเรื่องนี้แล้วแต่ฉันยังไม่ได้รับคำตอบใด ๆ เลย กรุณาตรวจสอบ link.there ฉันอธิบายด้วยภาพหน้าจอและรหัสแหล่งที่มา stackoverflow.com/questions/16434215/…
venkat

@venkat ตอบคุณตรงนั้น
นาธาน W
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.