为了实现这个功能,你可以将上面提供的 ImageViewer 类作为一个启动画面使用,并在启动画面关闭后显示你的主程序界面。以下是一个简单的示例:
首先,我们需要创建一个新的主窗口类,用于显示你的程序的主要界面。在本例中,我们将使用一个简单的 QMainWindow,但你可以根据需要自定义这个类:
- from PySide6.QtWidgets import QMainWindow
- class MainWindow(QMainWindow):
- def __init__(self, parent=None):
- super(MainWindow, self).__init__(parent)
- self.setWindowTitle('主程序界面')
- # 在这里添加其他界面组件和布局
复制代码
然后,我们需要修改 ImageViewer 类,使其在关闭时发出一个信号。这可以通过在类中添加一个自定义信号并在 closeEvent 方法中发出它来实现:
- from PySide6.QtCore import Signal
- class ImageViewer(QMainWindow):
- # 定义一个自定义信号,当启动画面关闭时发出
- closed = Signal()
- ...
- def closeEvent(self, event):
- # 当窗口关闭时发出信号
- self.closed.emit()
- super(ImageViewer, self).closeEvent(event)
复制代码
最后,修改主程序入口,首先显示启动画面,然后在启动画面关闭后显示主程序界面:
- if __name__ == '__main__':
- app = QApplication(sys.argv)
- image_path = 'path/to/your/image.png' # 请将此处替换为你的图片路径
- display_time_ms = 5000 # 显示图片的时间,单位为毫秒
- viewer = ImageViewer(image_path, display_time_ms)
- main_window = MainWindow()
- def show_main_window():
- main_window.show()
- viewer.deleteLater()
- viewer.closed.connect(show_main_window)
- viewer.show()
- sys.exit(app.exec())
复制代码
这样,在启动画面显示指定时间后关闭时,主程序界面将显示出来。
注意:在这个示例中,我们使用了 deleteLater 方法来在启动画面关闭后释放它占用的资源。这样做是因为我们在启动画面关闭后不再需要它。如果你希望在程序运行期间重复使用启动画面,你可以选择不使用 deleteLater 方法。