pyqt 窗口加阴影
在网上找了许多加阴影的例子,这里模仿着一位大佬的写了一个pyqt的例子。原博客地址qt加阴影
from PyQt5 import QtCore
from PyQt5.QtCore import *
from PyQt5.QtGui import QPainter, QBrush, QImage, QColor, QPainterPath, QPen
from PyQt5.QtWidgets import *
import sys
Q = QApplication(sys.argv)
class myQWidget(QWidget):
'''重写一个Qwidget'''
def mouseMoveEvent(self, QMouseEvent):
print('鼠标当前位置', QMouseEvent.pos())
def paintEvent(self, QEvent):
painter = QPainter(self)
painter.setRenderHint(QPainter.Antialiasing, True)#反锯齿
'''渐变算法'''
for i in range(0, 9): # 边框重绘的次数,数值越大阴影越浓
painter.setPen(QColor(0, 0, 0, 0))
painter.setBrush(QColor(0, 0, 0, 6 + i))
painter.drawRoundedRect(i, i, self.width() - 2 * i, self.height() - 2 * i, 0, 0) # 设置阴影的轮廓,4个与setGeometry参数一样,后面两个为窗口圆角
# painter.setPen(QColor(0,0,0,0))
painter.setBrush(QColor(255, 255, 255))
painter.drawRoundedRect(10, 10, self.width() - 20, self.height() - 20, 0, 0)
class Test_Window(myQWidget):
def __init__(self):
super(Test_Window, self).__init__()
self.resize(400, 300)
self.setWindowFlag(QtCore.Qt.FramelessWindowHint)
self.setAttribute(Qt.WA_TranslucentBackground)
self.init_labels()
def init_labels(self):
self.label=QLabel(self)
self.label.setGeometry(10,0,20,20)
self.label.setStyleSheet("QLabel{background:red;}")
if __name__ == '__main__':
app = Q
win = Test_Window()
win.show()
sys.exit(app.exec_())