赞
踩
参考QT例子,做下记录:
思路:
1.准备图片
2.设置边框显示宽度
self.SHADOW_WIDTH=8
- def drawShadow(self,painter):
- #绘制左上角、左下角、右上角、右下角、上、下、左、右边框
- self.pixmaps=QStringList()
- self.pixmaps.append(QString("./img/border/left_top.png"))
- self.pixmaps.append(QString("./img/border/left_bottom.png"))
- self.pixmaps.append(QString("./img/border/right_top.png"))
- self.pixmaps.append(QString("./img/border/right_bottom.png"))
- self.pixmaps.append(QString("./img/border/top_mid.png"))
- self.pixmaps.append(QString("./img/border/bottom_mid.png"))
- self.pixmaps.append(QString("./img/border/left_mid.png"))
- self.pixmaps.append(QString("./img/border/right_mid.png"))
- painter.drawPixmap(0, 0, self.SHADOW_WIDTH, self.SHADOW_WIDTH, QPixmap(self.pixmaps[0])) #左上角
- painter.drawPixmap(self.width()-self.SHADOW_WIDTH, 0, self.SHADOW_WIDTH, self.SHADOW_WIDTH, QPixmap(self.pixmaps[2])) #右上角
- painter.drawPixmap(0,self.height()-self.SHADOW_WIDTH, self.SHADOW_WIDTH, self.SHADOW_WIDTH, QPixmap(self.pixmaps[1])) #左下角
- painter.drawPixmap(self.width()-self.SHADOW_WIDTH, self.height()-self.SHADOW_WIDTH, self.SHADOW_WIDTH, self.SHADOW_WIDTH, QPixmap(self.pixmaps[3])) #右下角
- painter.drawPixmap(0, self.SHADOW_WIDTH, self.SHADOW_WIDTH, self.height()-2*self.SHADOW_WIDTH, QPixmap(self.pixmaps[6]).scaled(self.SHADOW_WIDTH, self.height()-2*self.SHADOW_WIDTH)) #左
- painter.drawPixmap(self.width()-self.SHADOW_WIDTH, self.SHADOW_WIDTH, self.SHADOW_WIDTH, self.height()-2*self.SHADOW_WIDTH, QPixmap(self.pixmaps[7]).scaled(self.SHADOW_WIDTH, self.height()- 2*self.SHADOW_WIDTH)) #右
- painter.drawPixmap(self.SHADOW_WIDTH, 0, self.width()-2*self.SHADOW_WIDTH, self.SHADOW_WIDTH, QPixmap(self.pixmaps[4]).scaled(self.width()-2*self.SHADOW_WIDTH, self.SHADOW_WIDTH)) #上
- painter.drawPixmap(self.SHADOW_WIDTH, self.height()-self.SHADOW_WIDTH, self.width()-2*self.SHADOW_WIDTH, self.SHADOW_WIDTH, QPixmap(self.pixmaps[5]).scaled(self.width()-2*self.SHADOW_WIDTH, self.SHADOW_WIDTH)) #下
'运行
- def paintEvent(self, event):
- painter = QPainter(self)
- self.drawShadow(painter)
- painter.setPen(Qt.NoPen)
- painter.setBrush(Qt.white)
- painter.drawRect(QRect(self.SHADOW_WIDTH, self.SHADOW_WIDTH, self.width()-2*self.SHADOW_WIDTH, self.height()-2*self.SHADOW_WIDTH))
'运行
- self.setWindowFlags(Qt.FramelessWindowHint)
- self.setAttribute(Qt.WA_TranslucentBackground)
效果如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。