本文以begin为第一跳转界面
第二跳转界面(heibai)为People to People(人人对战)
第三跳转界面(heibai2)为People to Computer(人机对战)
三张效果图如下:
各个页面源代码如下:
头文件:
begin.h
#ifndef BEGIN_H
#define BEGIN_H
#include <heibai.h>
#include <heibai2.h>
#include <QMainWindow>
#include <QPaintEvent>
#include <QWidget>
#include <QMouseEvent>
#include <phonon/MediaObject>
namespace Ui {
class begin;
}
//enum GridState{Black,White,Empty};
class begin : public QMainWindow
{
Q_OBJECT
public:
explicit begin(QWidget *parent = 0);
~begin();
void paintEvent(QPaintEvent *e);
enum GridState{Black,White,Empty};
private slots:
void on_pushButton_clicked();
void on_pushButton_2_clicked();
void put();
void put2();
void do_timer();
private:
Ui::begin *ui;
heibai b;
heibai2 b2;
int sec;
};
#endif // BEGIN_H
heibai.h
#ifndef HEIBAI_H
#define HEIBAI_H
#include <QWidget>
#include <QPaintEvent>
#include <QMainWindow>
#include <QMouseEvent>
namespace Ui {
class heibai;
}
class heibai : public QWidget
{
Q_OBJECT
public:
explicit heibai(QWidget *parent = 0);
~heibai();
void paintEvent(QPaintEvent *e);
enum GridState{Black,White,Empty};
void mousePressEvent(QMouseEvent *e);
void mouseMoveEvent(QMouseEvent *e);
int judgeRule(int x, int y, int gridNum, void *chess, GridState currentRole);
int judgeRule2(int x, int y, int gridNum, void *chess, GridState currentRole);
private:
Ui::heibai *ui;
int sec;
QTimer *timer;
int chessNumber[8][8];
GridState currentRole;
int xPoint,yPoint;
int BlackNumber;
int WhiteNumber;
signals:
void give();
private slots:
void do_timer();
void do_timer2();
void on_pushButton_clicked();
void on_pushButton_3_clicked();
void on_pushButton_4_clicked();
void on_pushButton_5_clicked();
void on_pushButton_7_clicked();
void on_pushButton_8_clicked();
};
#endif // HEIBAI_H
heibai2.h
#ifndef HEIBAI2_H
#define HEIBAI2_H
#include <QWidget>
#include <QPaintEvent>
#include <QMainWindow>
#include <QMouseEvent>
namespace Ui {
class heibai2;
}
class heibai2 : public QWidget
{
Q_OBJECT
public:
explicit heibai2(QWidget *parent = 0);
void paintEvent(QPaintEvent *e);
enum GridState{Water,Fire,Air};
void mousePressEvent(QMouseEvent *e);
void mouseMoveEvent(QMouseEvent *e);
int judgeRule(int x, int y, int gridNum, void *chess, GridState currentRole);
int judgeRule2(int x, int y, int gridNum, void *chess, GridState currentRole);
~heibai2();
signals:
void give2();
private slots:
void do_timer();
void do_timer2();
void on_pushButton_clicked();
void on_pushButton_2_clicked();
void on_pushButton_3_clicked();
void on_pushButton_4_clicked();
void on_pushButton_5_clicked();
void on_pushButton_6_clicked();
void on_pushButton_7_clicked();
private:
Ui::heibai2 *ui;
int sec;
QTimer *timer;
int chessNumber[8][8];
GridState currentRole;
int xPoint,yPoint;
int BlackNumber;
int WhiteNumber;
};
#endif // HEIBAI2_H
begin.cpp
#include "begin.h"
#include "ui_begin.h"
#include "QPainter"
#include "QTimer"
begin::begin(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::begin)
{
ui->setupUi(this);
connect(&this->b,SIGNAL(give()),this,SLOT(put()));
connect(&this->b2,SIGNAL(give2()),this,SLOT(put2()));
}
begin::~begin()
{
delete ui;
}
void begin::put()
{
this->show();
}
void begin::put2()
{
this->show();
}
void begin::paintEvent(QPaintEvent *e) //background picture
{
QPainter p(this);
p.drawPixmap(0,0,1366,768,QPixmap(":/new/prefix1/images /11.png"));
}
void begin::on_pushButton_clicked()
{
b.setFixedSize(1366,768);
b.show();
this->close();
}
void begin::on_pushButton_2_clicked()
{
b2.setFixedSize(1366,768);
b2.show();
this->close();
}
heibai.cpp
#include "heibai.h"
#include "ui_heibai.h"
#include <QTimer>
#include <QPainter>
#include <QPen>
#include "QMovie"
#include "QMessageBox"
heibai::heibai(QWidget *parent) :
QWidget(parent),
ui(new Ui::heibai)
{
ui->setupUi(this);
sec=11;
this->setMouseTracking(true);
QTimer