我在创建了两个文件,一个用来显示登陆界面,一个用来作为小游戏主题。下面是两个文件的代码:
//snakegameli.h
#ifndef SNAKESGAMELI_H
#define SNAKESGAMELI_H
#include
#include "snakesgamemain.h"
namespace Ui {
class snakesgameLI;
}
class snakesgameLI : public QDialog
{
Q_OBJECT
public:
explicit snakesgameLI(QWidget *parent = 0);
~snakesgameLI();
private slots:
void on_StartBtn_clicked();
void on_closeBtn_clicked();
private:
Ui::snakesgameLI *ui;
};
#endif // SNAKESGAMELI_H
//snakesgameli.cpp
#include "snakesgameli.h"
#include "ui_snakesgameli.h"
snakesgameLI::snakesgameLI(QWidget *parent) :
QDialog(parent),
ui(new Ui::snakesgameLI)
{
ui->setupUi(this);
}
snakesgameLI::~snakesgameLI()
{
delete ui;
}
void snakesgameLI::on_StartBtn_clicked()
{
accept();
}
void snakesgameLI::on_closeBtn_clicked()
{
close();
}
还有一个ui文件运行后的效果是这样的
在点击了开始游戏后登陆界面会消失,但是不会出现主体界面
下面是main函数
#include
#include "snakesgameli.h"
#include "snakesgamemain.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
snakesgameLI dialog;
if(dialog.exec()!= QDialog::Accepted)
return -1;
SnakesGameMain w;
w.show();
return a.exec();
}
接下来是主体界面文件:
//snakesgamemain.h
#ifndef SNAKESGAMEMAIN_H
#define SNAKESGAMEMAIN_H
#include
#define HEIGHT 50
#define WIDTH 96
class SnakesGameMain : public QMainWindow
{
Q_OBJECT
public:
explicit SnakesGameMain(QWidget *parent = 0);
~SnakesGameMain();
private:
int **matrix;
};
#endif // SNAKESGAMEMAIN_H
//snakesgamemain.cpp
#include "snakesgamemain.h"
SnakesGameMain::SnakesGameMain(QWidget *parent) :
QMainWindow(parent)
{
for(int i = 0; i < HEIGHT; i++)
{
matrix[i] = new int[WIDTH];
}
resize(800, 600);
}
SnakesGameMain::~SnakesGameMain()
{
}
在调试后发现程序在matrix[i] = new int[WIDTH]处中断
反复检查了很多次很是不能理解,遂来求dalao们出手相助......