这是因为
sleep(1)
线对于
QSplashScreen
为了正常工作,应该运行一个事件循环。然而
sleep
正在阻止。所以你不能
app.exec_()
(事件循环)之前的部分
睡觉
完成(整整一秒钟)。“灰色矩形”就是您输入的情况
睡觉
之前
QSplash屏幕
甚至可以自己画画。
对于正常情况,您不会有这个问题,因为您将在Qt中等待,并且事件循环将运行。如果您想“模拟”等待,请短时间睡眠并强制
app
做它的工作
.processEvents()
:
# -*- coding: utf-8 -*-
import sys
from time import time, sleep
from PyQt4.QtGui import QApplication, QSplashScreen, QPixmap
from gui.gui import MainWindow
def main():
app = QApplication(sys.argv)
start = time()
splash = QSplashScreen(QPixmap("aquaticon/images/splash_screen.jpg"))
splash.show()
while time() - start < 1:
sleep(0.001)
app.processEvents()
win = MainWindow()
splash.finish(win)
win.show()
app.exec_()
if __name__ == "__main__":
main()