30 lines
913 B
Python
30 lines
913 B
Python
# loading_overlay.py
|
|
from PyQt6.QtWidgets import QWidget, QLabel
|
|
from PyQt6.QtCore import Qt
|
|
from PyQt6.QtGui import QMovie
|
|
|
|
class LoadingOverlay(QWidget):
|
|
def __init__(self, parent=None):
|
|
super().__init__(parent)
|
|
self.setStyleSheet("background-color: rgba(0, 0, 0, 150);")
|
|
self.setAttribute(Qt.WidgetAttribute.WA_TransparentForMouseEvents, True)
|
|
|
|
self.spinner = QLabel(self)
|
|
self.spinner.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
|
self.movie = QMovie("spinner.gif")
|
|
self.spinner.setMovie(self.movie)
|
|
|
|
layout = self.spinner.geometry()
|
|
self.resize(parent.size())
|
|
self.spinner.resize(100, 100)
|
|
self.spinner.move((self.width() - 100) // 2, (self.height() - 100) // 2)
|
|
self.hide()
|
|
|
|
def start(self):
|
|
self.movie.start()
|
|
self.show()
|
|
|
|
def stop(self):
|
|
self.movie.stop()
|
|
self.hide()
|