qt绘制多边形去边框
时间: 2024-09-06 22:00:37 浏览: 66
QT实现多边形填充算法
在Qt中,如果你想绘制一个多边形并去除边框,你可以使用`QPainter`类和其提供的`drawPolygon()`函数,配合`setPen()`函数设置无边框。以下是一个简单的示例:
```cpp
#include <QApplication>
#include <QWidget>
#include <QPainter>
class MyWidget : public QWidget
{
Q_OBJECT
public:
MyWidget(QWidget *parent = nullptr) : QWidget(parent)
{
// 设置窗口大小
setFixedSize(400, 400);
}
protected:
void paintEvent(QPaintEvent *) override
{
QPainter painter(this);
// 创建一个多边形顶点列表
QPoint points[] = {QPoint(50, 50), QPoint(200, 100), QPoint(150, 250), QPoint(75, 300)};
// 设置画笔颜色和填充色
painter.setPen(Qt::NoPen); // 无边框
painter.setBrush(Qt::red); // 填充颜色
// 绘制多边形
painter.drawPolygon(QPolygon(points)); // 注意,需要一个QPolygon对象,而不是直接传递point数组
}
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MyWidget window;
window.show();
return app.exec();
}
```
在这个例子中,创建了一个无边框的红色多边形。如果你只想在鼠标按下时临时去掉边框,可以考虑使用`QGraphicsView`和`QGraphicsPolygonItem`,它们更灵活且支持事件驱动。
阅读全文