Qt中绘制五子棋棋盘

一个需要做大作业的同学问我相关内容,就顺手写了一个,贴出来。

项目包含头文件 mainwindowh,源文件mainwindow.cpp和主函数main.cpp。

如下:

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QWidget>
#include <QPainter>

class MainWindow : public QWidget
{
  Q_OBJECT

public:
  MainWindow(QWidget *parent = 0);
  ~MainWindow();
  const int SIZE=10;
  const int WIDTH=40;
  const int x=20,y=20;
private slots:

private:
  void paintEvent(QPaintEvent *);//绘图函数声明
  //void mousePressEvent(QMouseEvent *);
  QPainter *paint;
};

#endif // MAINWINDOW_H

 

mainwindow.cpp

#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
  : QWidget(parent)
{

}

MainWindow::~MainWindow()
{

}
void MainWindow::paintEvent(QPaintEvent *)
{
  paint=new QPainter;
  paint->begin(this);//主窗口

  paint->setPen(QPen(Qt::darkGreen,2,Qt::SolidLine));//钢笔工具:颜色,线号,实线
  //画SIZE+1条横线
  for(int i=0;i<SIZE+1;i++)
    {
      paint->drawLine(x,y+WIDTH*i,x+WIDTH*(SIZE),y+WIDTH*i);//画线函数:x1,y1,x2,y2:画从(x1,y1)到(x2,y2)的线
    }
  //画SIZE+1条竖线
  for(int i=0;i<SIZE+1;i++)
    {
      paint->drawLine(x+WIDTH*i,y,x+WIDTH*i,y+WIDTH*(SIZE));
    }
  //在棋盘正中做一个黑棋子
  paint->setBrush(QBrush(Qt::black,Qt::SolidPattern));//毛刷:颜色,实图案
  paint->drawEllipse((SIZE+0.5)*WIDTH/2,(SIZE+0.5)*WIDTH/2,WIDTH/2,WIDTH/2);//画椭圆:中心点X,Y,宽度,高度
  paint->end();
}

 

main.cpp

#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
  QApplication a(argc, argv);
  MainWindow w;
  w.show();

  return a.exec();
}

 

转载于:https://www.cnblogs.com/cielosun/p/5654513.html

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值