用QT绘制五子棋

本文介绍了如何使用QT进行2D绘图,包括绘制直线、设置画笔和画刷,进而实现五子棋棋盘和棋子的绘制。通过创建QPainter对象、设置QPen和QBrush,以及在paintEvent()函数中调用绘制函数,逐步构建五子棋游戏。文章详细讲解了棋盘和棋子的实现步骤,并讨论了判断输赢的方法。
摘要由CSDN通过智能技术生成

1.QT绘图

Qt中提供了强大的2D绘图系统,可以使用相同的API在屏幕和绘图设备上进行绘制,它主要基于QPainter、QPaintDevice和QPaintEngine这三个类。其中QPainter用来执行绘图操作;QPaintDevice提供绘图设备,它是一个二维空间的抽象,可以使用QPainter在其上进行绘制;QPaintEngine提供了一些接口,可以用于QPainter在不同的设备上进行绘制。
在绘图系统中由QPainter来完成具体的绘制操作,QPainter类提供了大量高度优化的函数来完成GUI编程所需要的大部分绘制工作。QPainter可以绘制一切想要的图形,从最简单的一条直线到其他任何复杂的图形,它还可以用来绘制文本和图片。QPainter可以在继承自QPaintDevice类的任何对象上进行绘制操作。
QPainter一般在一个部件的重绘事件(PaintEvent)的处理函数paintEvent()中进行绘制,首先要创建QPainter对象,然后进行图形的绘制,最后销毁QPainter对象。

1.1 绘制一条直线

1.新建QtGui应用,项目名称为line,类信息界面不用修改,即类名为MainWindow,基类为QMainWindow。
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在mainwindow.h文件中添加重绘事件处理函数的声明:
protected:
voidpaintEvent(QPaintEvent );
所有的绘制操作都要在这个函数里面完成。
在这里插入图片描述下面到mainwindow.cpp文件中先需要添加头文件包含:
#include
在这里插入图片描述
添加函数定义
Void MainWindow::paintEvent(QPaintEvent
)
{
QPainterpainter(this);
painter.drawLine(QPointF(0,0), QPointF(100, 100));
}
在这里插入图片描述

1.2画笔和画刷

修改paintEvent()函数的内容更改如下:

voidMainWindow::paintEvent(QPaintEvent*)

{

QPainterpainter(this);

QPenpen;//画笔

pen.setColor(QColor(255,0,0));//设置画笔颜色

QBrushbrush(QColor(0,255,0,125));//画刷

painter.setPen(pen);//添加画笔

painter.setBrush(brush);//添加画刷

painter.drawRect(50,50,200,100);//绘制矩形

}
在这里插入图片描述这里分别新建了一个画笔QPen,和画刷QBrush。其中画笔使用了setColor()函数为其设置了颜色,而画刷是在构建的时候直接为其设置的颜色。这里的颜色都是使用的QColor类提供的,里面如果是三个参数,那么分别是红、绿、蓝分量的值,也就是经常说的rgb,取值范围都是0-255,比如这里的(255,0,0)就表明红色分量为255,其他分量为0,那么出来就是红色。如果是四个参数,最后一个参数alpha是设置透明度的,取值范围也是0-255,0表示完全透明,而255表示完全不透明。然后我们将画笔和画刷设置到了painter上,并使用drawRect()绘制了一个矩形,其左上角顶点在(50,50),宽为200,高为100。

  • 25
    点赞
  • 138
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我超爱写bug

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值