QT阶段项目——飞机大战1.0

附代码:链接: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()<
//历史记录查询代码段
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--)//从大到小排序
                {
             

你可能感兴趣的:(QT基础入门,qt,开发语言,c++,小程序,windows)