pyqt6Dashboard/qtDash/loading_overlay.py

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()