QPainter(self) 设置label字体,背景图片和边框图片
时间: 2024-03-23 22:38:06 浏览: 98
在Qlabel上显示图片,并矩形图
如果你想使用QPainter来绘制QLabel的背景和边框,可以重写QLabel的paintEvent方法,并在该方法中使用QPainter进行绘制。以下是一个示例代码,可以设置QLabel的字体为宋体,背景图片为bg.png,边框图片为border.png:
```python
from PySide2.QtWidgets import QLabel, QApplication
from PySide2.QtGui import QFont, QPixmap, QPainter, QPen, QBrush
from PySide2.QtCore import Qt
app = QApplication([])
class MyLabel(QLabel):
def __init__(self, parent=None):
super().__init__(parent)
self.setText('Hello World')
self.setFont(QFont('SimSun', 12))
def paintEvent(self, event):
painter = QPainter(self)
painter.setRenderHint(QPainter.Antialiasing)
painter.setRenderHint(QPainter.SmoothPixmapTransform)
# 绘制背景
bg_pixmap = QPixmap('bg.png')
painter.drawPixmap(self.rect(), bg_pixmap)
# 绘制边框
border_pixmap = QPixmap('border.png')
painter.drawPixmap(self.rect(), border_pixmap)
# 绘制文字
painter.setPen(QPen(Qt.white))
painter.drawText(self.rect(), Qt.AlignCenter, self.text())
label = MyLabel()
label.show()
app.exec_()
```
注意,以上代码中的字体为宋体,如果你的系统中没有该字体,可以将其替换为你系统中的任何一种字体。同时,你还需要准备好对应的背景图片和边框图片,并将其放置在正确的路径下。在示例代码中,bg.png和border.png应该在代码文件所在的同一目录下。
阅读全文