Qt 绘制多边形去掉外边框
时间: 2024-09-06 18:00:33 浏览: 45
在Qt中,如果你想在绘制多边形时不显示外边框,即仅填充多边形内部的颜色而不画出轮廓,你可以使用`fillPolygon()`函数而不是直接使用`drawPolygon()`。`fillPolygon()`用于填充多边形区域,不会添加额外的边框。
下面是一个例子,展示了如何使用`QPainter`在窗口上绘制填充的多边形:
```cpp
#include <QApplication>
#include <QWidget>
#include <QPainter>
class MainWindow : public QWidget {
public:
MainWindow(QWidget *parent = nullptr) : QWidget(parent) {}
protected:
void paintEvent(QPaintEvent *) {
QPainter painter(this);
// 定义一个多边形的顶点列表
QPoint polygonPoints[] = {QPoint(50, 50), QPoint(200, 50), QPoint(200, 150), QPoint(50, 150)};
int numVertices = sizeof(polygonPoints) / sizeof(polygonPoints[0]);
// 使用fillPolygon()填充多边形,设为透明色(如果需要其他颜色,可以用Qt::color替代)
QColor fillColor(Qt::transparent);
painter.fillPolygon(QPolygonF(polygonPoints, numVertices), fillColor);
// 如果你想绘制多边形,但不显示边框,可以省略这行
//painter.drawPolygon(QPolygonF(polygonPoints, numVertices));
}
};
int main(int argc, char **argv) {
QApplication app(argc, argv);
MainWindow window;
window.show();
return app.exec();
}
```
在这个示例里,绘制的是一个无边框的透明多边形。如果你想在填充后再加上边框,记得恢复`paintPolygon()`并设置合适的描边颜色和宽度。
阅读全文