qt绘制一个矩形绘制一个三角形
时间: 2023-08-19 18:43:56 浏览: 158
在Qt中绘制三角形可以使用QPainter类的drawPolygon函数,具体操作如下:
1. 创建一个QPainter对象
2. 设置绘制三角形的画笔和画刷,可以使用setPen和setBrush函数
3. 创建一个QPolygon对象,用于存储三角形的三个顶点的坐标
4. 调用QPainter的drawPolygon函数,传入QPolygon对象即可完成三角形的绘制。
下面是一个简单的示例代码:
```cpp
#include <QPainter>
#include <QWidget>
void Widget::paintEvent(QPaintEvent *)
{
QPainter painter(this);
QPen pen(Qt::black, 2, Qt::SolidLine);
painter.setPen(pen);
QBrush brush(Qt::blue, Qt::SolidPattern);
painter.setBrush(brush);
// 绘制矩形
painter.drawRect(50, 50, 100, 100);
// 绘制三角形
QPolygon polygon;
polygon << QPoint(150, 150) << QPoint(200, 200) << QPoint(250, 150);
painter.drawPolygon(polygon);
}
```
以上代码会在窗口中绘制一个黑色的矩形和一个蓝色的三角形。
相关问题
使用QT绘制一个矩形
在 Qt 中,您可以使用 QPainter 类在窗口上绘制各种形状,包括矩形。以下是一个简单的示例程序,演示如何在窗口中绘制一个矩形:
```cpp
#include <QtGui>
class MyWidget : public QWidget
{
public:
MyWidget(QWidget *parent = 0) : QWidget(parent) { }
protected:
void paintEvent(QPaintEvent *event) {
Q_UNUSED(event);
QPainter painter(this);
painter.drawRect(QRect(50, 50, 100, 100));
}
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MyWidget widget;
widget.show();
return app.exec();
}
```
在这个例子中,我们创建了一个名为 `MyWidget` 的自定义窗口部件,并重写了它的 `paintEvent` 函数。在 `paintEvent` 中,我们创建了一个 QPainter 对象,并使用 `drawRect` 函数在窗口上绘制一个矩形。`drawRect` 函数接受一个 QRect 对象作为参数,指定矩形的位置和大小。
最后,我们创建了一个 QApplication 对象,实例化了 MyWidget 对象并显示它。
注意:您需要将 Qt 的头文件和库链接到您的项目中,以便编译和运行上述代码。
使用C++ qt opengl 绘制一个矩形
以下是使用C++ Qt OpenGL绘制一个矩形的代码示例:
```cpp
#include <QOpenGLWidget>
#include <QOpenGLFunctions_3_3_Core>
class QQQOpenGLWidget : public QOpenGLWidget, QOpenGLFunctions_3_3_Core {
Q_OBJECT
public:
explicit QQQOpenGLWidget(QWidget *parent = nullptr);
protected:
virtual void initializeGL();
virtual void resizeGL(int w, int h);
virtual void paintGL();
};
QQQOpenGLWidget::QQQOpenGLWidget(QWidget *parent) : QOpenGLWidget(parent) {}
void QQQOpenGLWidget::initializeGL() {
initializeOpenGLFunctions();
}
void QQQOpenGLWidget::resizeGL(int w, int h) {}
void QQQOpenGLWidget::paintGL() {
glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
// 绘制矩形
glBegin(GL_QUADS);
glColor3f(1.0f, 0.0f, 0.0f); // 设置颜色为红色
glVertex2f(-0.5f, -0.5f); // 左下角顶点
glVertex2f(0.5f, -0.5f); // 右下角顶点
glVertex2f(0.5f, 0.5f); // 右上角顶点
glVertex2f(-0.5f, 0.5f); // 左上角顶点
glEnd();
}
```
相关问题--:
1. 如何在Qt中使用OpenGL?
2. 如何绘制其他形状,例如三角形或圆形?
3. 如何在OpenGL中设置不同的颜色?
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)