Qpainter 画一个长方形
时间: 2024-12-11 11:44:26 浏览: 10
QPainter是Qt库中的一个绘图类,它提供了一系列函数用于在各种图形设备上绘制图形,包括窗口、图像和其他支持的表面。如果你想使用QPainter在Qt应用程序中画一个长方形,可以按照以下步骤操作:
1. 创建QPainter对象:首先,你需要获取到需要绘画的对象,如`QWidget`、`QPixmap`或`QImage`等,并创建一个指向它们的`QPainter`实例。
```cpp
QPainter painter;
if (yourObject) {
painter.begin(yourObject);
}
```
2. 设置颜色:使用`setPen()`函数设置线条的颜色,`setBrush()`设置填充色。
```cpp
QColor color(0xff0000); // 红色
painter.setPen(color);
painter.setBrush(color);
```
3. 绘制矩形:调用`drawRect()`函数,传入矩形的左上角坐标和大小。
```cpp
int x = 50; // 左边距
int y = 75; // 上边距
int width = 200; // 宽度
int height = 150; // 高度
painter.drawRect(x, y, width, height);
```
4. 结束绘图:当你完成绘制后,记得关闭`QPainter`上下文。
```cpp
painter.end();
```
相关问题
qpainter画一个闪电
好的,我可以使用 QPainter 来画一个闪电形状。下面是画闪电的示例代码:
```python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget
from PyQt5.QtGui import QPainter, QColor, QPen
from PyQt5.QtCore import Qt
class LightningWidget(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('闪电')
self.setGeometry(100, 100, 400, 400)
def paintEvent(self, event):
painter = QPainter(self)
painter.setRenderHint(QPainter.Antialiasing)
pen = QPen()
pen.setWidth(3)
pen.setColor(Qt.yellow)
painter.setPen(pen)
# 闪电形状的路径
path = QPainterPath()
path.moveTo(200, 100)
path.lineTo(230, 200)
path.lineTo(180, 200)
path.lineTo(210, 300)
path.lineTo(170, 300)
path.lineTo(200, 400)
painter.drawPath(path)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = QMainWindow()
widget = LightningWidget()
window.setCentralWidget(widget)
window.show()
sys.exit(app.exec_())
```
运行上述代码后,会显示一个窗口,并在窗口中绘制出一个闪电形状。你可以根据需要调整绘制的位置和颜色。
用qpainter画一个熊猫
好的,以下是用Qt中的QPainter类画一个熊猫的代码:
```cpp
void Widget::paintEvent(QPaintEvent *event)
{
Q_UNUSED(event);
QPainter painter(this);
//设置画笔颜色和宽度
painter.setPen(QPen(Qt::black, 2));
//画身体
painter.drawEllipse(QPointF(150, 150), 100, 120);
//画耳朵
painter.drawEllipse(QPointF(85, 80), 30, 40);
painter.drawEllipse(QPointF(215, 80), 30, 40);
//画眼睛
painter.setBrush(Qt::black);
painter.drawEllipse(QPointF(120, 130), 10, 20);
painter.drawEllipse(QPointF(180, 130), 10, 20);
//画鼻子
painter.setBrush(Qt::white);
painter.drawEllipse(QPointF(150, 160), 20, 20);
painter.setBrush(Qt::black);
painter.drawEllipse(QPointF(150, 170), 5, 5);
//画嘴巴
painter.setBrush(Qt::white);
painter.drawEllipse(QPointF(150, 190), 20, 10);
}
```
这段代码会在窗口中画出一个可爱的熊猫。
阅读全文