2017-01-08 3 views
0

Я попытался создать заставку с помощью QSplashScreen, но изображение не отображается должным образом.QSplashScreen не работает должным образом в PyQt4

экран сальса работает (balnk), но splash_loading.png не отображается.

этот код из учебника онлайн:

from PyQt4.QtCore import * 
from PyQt4.QtGui import * 


class Form(QDialog): 
    def __init__(self, parent=None): 
     super(Form, self).__init__(parent) 
     self.browser = QTextBrowser() 
     self.setWindowTitle('Just a dialog') 
     self.lineedit = QLineEdit("Write something and press Enter") 
     self.lineedit.selectAll() 
     layout = QVBoxLayout() 
     layout.addWidget(self.browser) 
     layout.addWidget(self.lineedit) 
     self.setLayout(layout) 
     self.lineedit.setFocus() 
     self.connect(self.lineedit, SIGNAL("returnPressed()"), 
       self.update_ui) 

    def update_ui(self): 
     self.browser.append(self.lineedit.text()) 


if __name__ == "__main__": 
    import sys, time 

    app = QApplication(sys.argv) 


    splash_pix = QPixmap('splash_loading.png') 
    splash = QSplashScreen(splash_pix, Qt.WindowStaysOnTopHint) 
    splash.setMask(splash_pix.mask()) 
    splash.show() 
    app.processEvents() 

    # Simulate something that takes time 
    time.sleep(2) 

    form = Form() 
    form.show() 
    splash.finish(form) 
    app.exec_() 

Splash Screen pyqt blank

+1

Я помню, перед той же проблемой. Вы используете PNG-изображение с прозрачностью? Если это так, попробуйте использовать PNG без прозрачности и не устанавливайте маску pixmap. –

+0

Спасибо за ваш ответ, я попробовал, но все равно получаю ту же проблему. Я попробую фотографию JPG. –

ответ

4

Вы не должны использовать сон, вы должны обрабатывать все события. Заменить строки между app = ... и form = Form() к:

start = time.time() 
splash = QSplashScreen(QPixmap("screen.png"), Qt.WindowStaysOnTopHint) 
splash.show() 
while time.time() - start < 2: 
    time.sleep(0.001) 
    app.processEvents() 

enter image description here

+0

Спасибо! теперь он отлично работает –

Смежные вопросы