python 中未显示 Qt 初始屏幕
Qt splash screen not shown in python
我正在尝试向我的程序添加启动画面,在 python 2.7 中编码并使用 pyqt4 库。我的主文件是:
#!/usr/bin/env python
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from logindialog import LoginDialog
from mainwindow import MainWindow
import time
import sys
if __name__ == "__main__":
try:
app = QApplication(sys.argv)
mw = MainWindow()
# Create and display the splash screen
splash_pix = QPixmap('images/sherlock_splash.png')
splash = QSplashScreen(splash_pix, Qt.WindowStaysOnTopHint)
splash.setMask(splash_pix.mask())
# adding progress bar
progressBar = QProgressBar(splash)
# adding message
splash.showMessage('Discovering Nodes...', Qt.AlignRight | Qt.AlignBottom, Qt.darkRed)
splash.show()
app.processEvents()
for i in range(0, 100):
progressBar.setValue(i)
# Simulate something that takes time
time.sleep(0.1)
splash.close()
# Show main window
mw.show()
app.exec_()
except Exception:
sys.exit(1)
sys.exit(0)
我使用 Pycharm IDE 对其进行了编码。如果我 运行 它使用 pycharm 运行 功能,启动画面会正确显示,但是如果我 运行 它在 linux 命令行(./main.py) 当我启动我的应用程序时它没有显示启动画面。
有人可以帮助我吗?
非常感谢!
更新和修复
...
# Create and display the splash screen
image_path = os.path.dirname(os.path.realpath(__file__))
splash_pix = QPixmap('/'.join([image_path, 'images/sherlock_splash.png']))
splash = QSplashScreen(splash_pix, Qt.WindowStaysOnTopHint)
...
谢谢!
检查您的项目结构并确保 .png
文件的相对路径是否正确
'images/sherlock_splash.png'
when 运行 来自命令行。
同时添加以下检查
if splash_pix is not None:
...
我正在尝试向我的程序添加启动画面,在 python 2.7 中编码并使用 pyqt4 库。我的主文件是:
#!/usr/bin/env python
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from logindialog import LoginDialog
from mainwindow import MainWindow
import time
import sys
if __name__ == "__main__":
try:
app = QApplication(sys.argv)
mw = MainWindow()
# Create and display the splash screen
splash_pix = QPixmap('images/sherlock_splash.png')
splash = QSplashScreen(splash_pix, Qt.WindowStaysOnTopHint)
splash.setMask(splash_pix.mask())
# adding progress bar
progressBar = QProgressBar(splash)
# adding message
splash.showMessage('Discovering Nodes...', Qt.AlignRight | Qt.AlignBottom, Qt.darkRed)
splash.show()
app.processEvents()
for i in range(0, 100):
progressBar.setValue(i)
# Simulate something that takes time
time.sleep(0.1)
splash.close()
# Show main window
mw.show()
app.exec_()
except Exception:
sys.exit(1)
sys.exit(0)
我使用 Pycharm IDE 对其进行了编码。如果我 运行 它使用 pycharm 运行 功能,启动画面会正确显示,但是如果我 运行 它在 linux 命令行(./main.py) 当我启动我的应用程序时它没有显示启动画面。
有人可以帮助我吗?
非常感谢!
更新和修复
...
# Create and display the splash screen
image_path = os.path.dirname(os.path.realpath(__file__))
splash_pix = QPixmap('/'.join([image_path, 'images/sherlock_splash.png']))
splash = QSplashScreen(splash_pix, Qt.WindowStaysOnTopHint)
...
谢谢!
检查您的项目结构并确保 .png
文件的相对路径是否正确
'images/sherlock_splash.png'
when 运行 来自命令行。
同时添加以下检查
if splash_pix is not None:
...