ในช่วงเริ่มต้นของ QGIS จะมีข้อความแสดงสถานะที่ส่วนล่างของ Splashscreen เช่น "เรียกคืนปลั๊กอินที่โหลด"
ฉันกำลังใช้คุณลักษณะ startup.py ซึ่งฉันต้องการแจ้งให้ผู้ใช้ทราบว่าสคริปต์ส่วนใดของสคริปต์เริ่มต้นทำงานในขณะนี้
เป็นไปได้ไหมที่จะแสดงข้อมูลนี้บน splashscreen?
Edit1:
เป็นวิธีแก้ปัญหาฉันจัดการเพื่อใช้ splashscreen ของตัวเองในระหว่างการเริ่มต้น:
from qgis.gui import *
from qgis.utils import *
from qgis.core import *
from PyQt4.QtGui import *
from qgis.PyQt.QtCore import QSettings, Qt
import time
template=QgsApplication.qgisSettingsDirPath() + "python/"
app=QgsApplication.instance()
splash_pix = QPixmap(template+'splashscreen.png')
splash = QSplashScreen(splash_pix, Qt.WindowStaysOnTopHint)
splash.setWindowFlags(Qt.WindowStaysOnTopHint | Qt.FramelessWindowHint)
splash.setEnabled(False)
splash.setMask(splash_pix.mask())
progressBar = QProgressBar(splash)
progressBar.setMaximum(10)
progressBar.setGeometry(0, splash_pix.height() - 20, splash_pix.width(), 10)
splash.show()
if QgsApplication.instance().findChild(QSplashScreen):
QgsMessageLog.logMessage("ja", "gridseen", level=QgsMessageLog.INFO)
else:
QgsMessageLog.logMessage("nein", "gridseen", level=QgsMessageLog.INFO)
splash.showMessage("<h1><font color='white'>Grid Integration-Check!</font></h1>", Qt.AlignBottom | Qt.AlignCenter, Qt.black)
for i in range(1, 11):
progressBar.setValue(i)
t = time.time()
while time.time() < t + 0.1:
app.processEvents()
time.sleep(2)
splash.close()
ดังนั้นฉันจึงใส่ splashscreen ในโฟลเดอร์ qgis-python ของฉัน (ตัวอย่าง https://github.com/webgeodatavore/qgis-splash-screens-birthday/raw/master/resized/qgis_version_2.18.png )
แต่วิธีนี้เป็นวิธีแก้ปัญหาที่รวดเร็วและสกปรก
เป็นไปไม่ได้ที่จะเข้าถึง splashscreen ที่สร้างขึ้นในระหว่างการเริ่มต้นแอพ QGIS ฉันพยายามเข้าถึงโดยใช้QgsApplication.instance().findChild(QSplashScreen)
แต่ไม่สามารถเข้าถึงได้
https://github.com/qgis/QGIS/blob/7bd0285dfdef9456a5929a7b7031270ea0ee2601/src/app/main.cpp#L1286