Scripts/qt_test.py

37 lines
1.3 KiB
Python

from PyQt5 import QtWidgets, QtCore, QtGui
import sys
class TransparentScene(QtWidgets.QGraphicsScene):
def __init__(self):
super().__init__()
text = self.addText("Mode: 1")
text.setDefaultTextColor(QtGui.QColor("white"))
# Add a semi-transparent background rect
rect = self.addRect(text.boundingRect().adjusted(-10, -10, 10, 10),
QtGui.QPen(QtCore.Qt.NoPen),
QtGui.QBrush(QtGui.QColor(0, 0, 0, 128)))
rect.setZValue(-1) # Put behind text
class TransparentView(QtWidgets.QGraphicsView):
def __init__(self):
super().__init__()
scene = TransparentScene()
self.setScene(scene)
self.setWindowFlags(QtCore.Qt.FramelessWindowHint | QtCore.Qt.WindowStaysOnTopHint)
self.setAttribute(QtCore.Qt.WA_TranslucentBackground)
self.setStyleSheet("background: transparent;")
self.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
self.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
self.setRenderHint(QtGui.QPainter.Antialiasing)
self.setFrameShape(QtWidgets.QFrame.NoFrame)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
view = TransparentView()
view.resize(200, 100)
view.show()
sys.exit(app.exec_())