tags: #python #qt #pyside #transparent #translucent #hud #overlay This is a barebones example of what is necessary for a 'hud' type overlay that shows temporarily. ```python import sys from PySide6.QtCore import * from PySide6.QtGui import * from PySide6.QtWidgets import * HUDTIME=2000 KILLTIME=4000 class Hud(QWidget): def __init__(self): super().__init__() # size and position -- possibly necessary to recompute, resize and move depending on hud contents w = 200 h = 200 self.resize(w,h) screen = QGuiApplication.primaryScreen() rect = screen.geometry() x = rect.width()-w y = rect.height()-h print(w,h,x,y) self.move(x,y) # attributes for display self.number = "My" self.font = QFont("Optima",80) self.color = QColor(100,255,100) self.ocolor = Qt.black self.pen = QPen(self.ocolor,16) self.showtime = 5 # two timers: one to auto-hide the hud, the second to kill the entire application self.timer = QTimer(self) self.dtimer = QTimer(self) # so a call to show() knows whether we are already showing or not (and vice versa for hide()) self.showing = False # window attributes self.setWindowFlags(self.windowFlags() | Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint) self.setAttribute(Qt.WA_TranslucentBackground) def paintEvent(self,event): with QPainter(self) as p: rect = QRect(0,25,200,150) path = QPainterPath() path.addText(0,0,self.font,str(self.number)) p.translate(0,150) # draw twice so that the black outline is _behind_ the fill p.setPen(self.pen) p.drawPath(path) p.setBrush(self.color) p.setPen(Qt.NoPen) p.drawPath(path) def show(self,x): self.number = x if not self.showing: super().show() self.showing = True self.timer.stop() self.update() self.timer.singleShot(HUDTIME,self.hide) def hide(self): if self.showing: self.showing = False super().hide() def test(self): timer = QTimer(self) self.show("My") timer.singleShot(1000, lambda *t: self.show("Xy")) self.dtimer.singleShot(KILLTIME,self.finish) def finish(self): app.quit() app = QApplication(sys.argv) hud = Hud() hud.test() exit(app.exec()) ```