附代码:链接:https://pan.baidu.com/s/1zItNTLnB4QkLuSlVgsd-gQ?pwd=rhy2
提取码:rhy2
一、菜单界面
1.菜单类
class menu: public QWidget
{
Q_OBJECT
public:
menu();
int map_id; //当前地图编号
int start; //游戏启动信号
int his_flag; //历史记录显示信号
int difficulty; //难度系数
QPushButton *left; //地图选择左按键
QPushButton *right; //地图选择右按键
QPushButton *start_game; //游戏开始按键
QPushButton *history; //查看历史记录按键
QComboBox *cmb_difficulty;//难度系数选择
QLabel *l_pix; //标签——显示当前地图/历史记录
map m_map; //地图对象
//菜单界面初始化
void menu_init();
//绘图事件
void paintEvent(QPaintEvent *event);
public slots://按键、下拉框槽函数
void bt_left();
void bt_right();
void bt_start();
void bt_history();
void cmb_num(int index);
};
2.菜单部分各代码段
//地图选择代码段
void menu::bt_left()
{
if(map_id==0)
map_id=4;
else
map_id--;
l_pix->setPixmap(QPixmap(m_map.m_map[map_id]));
update();
}
void menu::bt_right()
{
if(map_id==4)
map_id=0;
else
map_id++;
l_pix->setPixmap(QPixmap(m_map.m_map[map_id]));
update();
}
//难度选择代码段
void menu::cmb_num(int index)
{
difficulty = index;
qDebug()<<difficulty;
}
//游戏开始代码段
void menu::bt_start()
{
start=1;
}
//历史记录查询代码段
void menu::bt_history()
{
his_flag=!his_flag;
if(his_flag)
{
Widget::query_sql();
l_pix->clear();
l_pix->setText(Widget::query_str);
QFont font("宋体",15,QFont::Thin,false);
l_pix->setFont(font);
l_pix->setStyleSheet("color:white;");
Widget::query_str.clear();
}
else
{
l_pix->clear();
l_pix->setPixmap(QPixmap(m_map.m_map[map_id]));//数据里查询历史成绩
}
}
QString Widget::query_str = {""};
void Widget::query_sql()
{
//去数据库中查询一条信息
int str_size=0;
QString str = QString("select * from score;");
QString n_str[10]={"0"};
QString s_str[10]={"0"};
QSqlQuery query;
query.exec(str);//查询命令输入
while(query.next())
{
if(str_size < 10)
str_size++;
int i;
for(i=0;i < str_size;i++)
{
if(query.value(1).toInt() > s_str[i].toInt())//选取历史记录中最高的10条记录
{
for(int j=str_size-1;j > i;j--)//从大到小排序
{
n_st