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