PySide6.QtWidgets.QSplashScreen

class QSplashScreen

QSplashScreen 小部件提供了一个可以在应用程序启动期间显示的启动画面。更多

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__([pixmap=QPixmap()[, f=Qt.WindowFlags()]])
Parameters:

构建一个将显示pixmap的启动屏幕。

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

__init__(screen[, pixmap=QPixmap()[, f=Qt.WindowFlags()]])
Parameters:

这是一个重载函数。

此函数允许您为启动屏幕指定屏幕。此构造函数的典型用途是如果您有多个屏幕,并且希望启动屏幕显示在与主屏幕不同的屏幕上。在这种情况下,请传递适当的screen

clearMessage()

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

另请参阅

showMessage()

drawContents(painter)
Parameters:

画家QPainter

使用画师 painter 绘制启动屏幕的内容。默认实现绘制由 showMessage() 传递的消息。如果您想在启动屏幕上进行自定义绘制,请重新实现此函数。

finish(w)
Parameters:

wQWidget

使启动画面等待,直到小部件 mainWin 显示后,再调用 close() 关闭自身。

message()
Return type:

字符串

返回当前显示在启动屏幕上的消息。

messageChanged(message)
Parameters:

消息 – str

当启动屏幕上的消息发生变化时,会发出此信号。message 是新消息,当消息被移除时,它是一个空字符串。

pixmap()
Return type:

QPixmap

返回用于启动屏幕的像素图。该图像不包含由showMessage()调用绘制的任何文本。

另请参阅

setPixmap()

setPixmap(pixmap)
Parameters:

pixmapQPixmap

将用作启动屏幕图像的位图设置为 pixmap

另请参阅

pixmap()

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

  • alignment – int

  • 颜色QColor

message文本绘制到启动屏幕上,使用颜色color,并根据alignment中的标志对齐文本。此函数调用repaint()以确保启动屏幕立即重新绘制。因此,消息会与您的应用程序正在执行的操作(例如加载文件)保持同步。

另请参阅

clearMessage() message()