pyside2 在widget界面中生成标题标签 并利用QPainter绘制标题背景图片
时间: 2024-03-23 22:38:41 浏览: 133
首先,我们需要在 PySide2 中创建一个 QWidget,并添加一个 QLabel 作为标题。代码如下:
```python
from PySide2.QtWidgets import QWidget, QLabel, QVBoxLayout
class MyWidget(QWidget):
def __init__(self):
super().__init__()
# 创建标题标签
self.title_label = QLabel("标题")
self.title_label.setObjectName("TitleLabel") # 设置对象名称,以便后面通过 CSS 样式表设置样式
# 创建垂直布局
layout = QVBoxLayout()
layout.addWidget(self.title_label)
self.setLayout(layout)
```
接下来,我们可以利用 QPainter 在标题标签的背景上绘制一个图片。代码如下:
```python
from PySide2.QtGui import QPainter, QPixmap
class MyWidget(QWidget):
def paintEvent(self, event):
super().paintEvent(event)
# 获取标题标签的位置和大小
rect = self.title_label.geometry()
# 创建 QPainter 对象
painter = QPainter(self)
# 绘制图片
pixmap = QPixmap("background.png") # 加载图片
painter.drawPixmap(rect, pixmap) # 绘制图片到标题标签的背景上
```
最后,我们可以通过 CSS 样式表进一步设置标题标签的样式,包括字体、颜色、边框等。代码如下:
```python
class MyWidget(QWidget):
def __init__(self):
super().__init__()
# 创建标题标签
self.title_label = QLabel("标题")
self.title_label.setObjectName("TitleLabel")
# 创建垂直布局
layout = QVBoxLayout()
layout.addWidget(self.title_label)
self.setLayout(layout)
# 设置 CSS 样式表
self.setStyleSheet("""
#TitleLabel {
color: white;
font-size: 20px;
font-weight: bold;
padding: 5px;
border-radius: 5px;
background-color: transparent;
}
""")
```
这样,我们就可以在 PySide2 中生成一个带有标题背景图片的 QWidget 界面了。
阅读全文