Qpainter怎么在qwidget上的某个控件绘图
时间: 2024-05-10 16:18:14 浏览: 113
Qt 使用QPainter类在子控件上画图
3星 · 编辑精心推荐
要在QWidget上的某个控件上绘图,您需要使用QPainter。下面是一个简单的示例,演示如何在QLabel上绘制文本:
```python
from PyQt5.QtGui import QPainter, QColor
from PyQt5.QtWidgets import QWidget, QLabel, QApplication
class MyWidget(QWidget):
def __init__(self):
super().__init__()
self.label = QLabel(self)
self.label.setText("Hello World")
self.label.move(50, 50)
def paintEvent(self, event):
painter = QPainter(self.label)
painter.setPen(QColor(255, 0, 0))
painter.drawText(self.label.rect(), self.label.alignment(), self.label.text())
if __name__ == '__main__':
app = QApplication([])
widget = MyWidget()
widget.show()
app.exec_()
```
在这个例子中,我们继承了QWidget类,并在其中创建了一个QLabel控件。在QWidget的paintEvent()方法中,我们使用QPainter在QLabel上绘制红色文本。请注意,我们将QPainter的目标设置为QLabel,而不是QWidget本身。这可以通过在QPainter构造函数中传递QLabel作为参数来实现。
阅读全文