class QSplashScreen#

QSplashScreen 控件提供了一个启动屏,可以在应用程序启动时显示。更多

Inheritance diagram of PySide6.QtWidgets.QSplashScreen

简述#

方法#

虚方法#

槽函数#

信号#

注意

本文档可能包含从C++到Python自动翻译的代码段。我们始终欢迎对代码段翻译的贡献。如果发现翻译问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE创建工单来告知我们。

详细说明#

警告

本节包含自动从C++翻译到Python的代码段,可能包含错误。

启动画面是一种通常在应用程序启动时显示的小窗口。启动画面常用于启动时间较长的应用程序(例如,需要时间建立连接的数据库或网络应用程序),以向用户提供应用程序正在加载的反馈。

启动画面出现在屏幕中心。如果您想使启动画面始终位于其他桌面窗口之上,可以将Qt::WindowStaysOnTopHint添加到启动小部件的窗口标志中。

某些X11窗口管理器不支持“始终位于顶部”标志。一种解决方案是设置定时器,定期调用raise()方法在启动画面上来模拟“始终位于顶部”的效果。

最常用的用法是在显示主小部件之前显示启动画面。以下代码段演示了在显示应用程序的主窗口之前显示启动画面并执行一些初始化任务。

if __name__ == "__main__":

    app = QApplication([])
    pixmap = QPixmap(":/splash.png")
    splash = QSplashScreen(pixmap)
    splash.show()
    app.processEvents()            ...

window = QMainWindow()
window.show()
splash.finish(window)
sys.exit(app.exec())

用户可以通过用鼠标点击它来隐藏启动画面。为了使鼠标处理生效,在启动期间定期调用QApplication::processEvents()。

有时使用消息更新启动画面是有用的,例如,在应用程序启动期间宣布建立连接或加载模块。

pixmap = QPixmap(":/splash.png")
splash = QSplashScreen(pixmap)
splash.show()
... // Loading some items
splash.showMessage("Loaded modules")
QCoreApplication.processEvents()
... // Establishing connections
splash.showMessage("Established connections")
QCoreApplication.processEvents()

QSplashScreen通过showMessage()函数支持此功能。如果您要自己绘图,可以使用pixmap()获取启动画面中使用的位图指针。或者,您可以继承QSplashScreen并重写drawContents()

如果有多个屏幕,也可以在主屏幕之外的其他屏幕上显示启动画面。例如

screen = QGuiApplication.screens().at(1)
pixmap = QPixmap(":/splash.png")
splash = QSplashScreen(screen, pixmap)
splash.show()
__init__(screen[, pixmap=QPixmap()[, f=Qt.WindowFlags()]])#
参数:

这是一个重载函数。

此函数允许您指定启动画面显示的屏幕。该构造函数的典型用法是如果您有多个屏幕,而您希望启动画面在主屏幕之外显示。在这种情况下,传递正确的 screen

__init__([pixmap=QPixmap()[, f=Qt.WindowFlags()]])
参数:

构造一个将显示 pixmap 的启动画面。

通常不需要设置小部件标志,即 f,除非可能需要 Qt::WindowStaysOnTopHint。

clearMessage()#

从启动画面上移除正在显示的消息

参见

showMessage()

drawContents(painter)#
参数:

painterQPainter

使用画家 painter 绘制启动画面的内容。默认实现绘制的消息是通过 showMessage() 传递的。如果您想在自己的启动画面上绘制,则重新实现此函数。

finish(w)#
参数:

WQWidget

使得启动画面等待小部件 mainWin 显示后,再调用自身的 close() 方法。

message()#
返回类型:

str

返回启动画面上当前显示的消息。

messageChanged(message)#
参数:

message – str

当启动画面上的消息改变时,会发出此信号。message 是新消息,当消息被移除时为空字符串。

pixmap()#
返回类型:

QPixmap

返回用于启动画面的位图。图像不会包括由 showMessage() 调用绘制的文本。

参见

setPixmap()

setPixmap(pixmap)#
参数:

pixmapQPixmap

将用作启动画面图像的位图设置为 pixmap

参见

pixmap()

showMessage(message[, alignment=Qt.AlignLeft[, color=Qt.black]])#
参数:
  • message – str

  • alignment – int

  • colorQColor

使用颜色 color 绘制消息到启动画面,根据标志对齐 alignment。此函数调用 repaint() 来确保启动画面立即重新绘制。因此,消息将与应用程序执行的操作保持同步(例如,加载文件)。