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();
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM