hobo_LYQAQ 2022-08-24 03:51 采纳率: 50%
浏览 125
已结题

qt和sqlite实现排行榜或者解决我写代码问题

1、共三列五行,三列分别是排名与两个模式的得分
2、能根据游戏得分自动排名,允许同分
3、超出前5的排名被删除
4.完整代码(有注释更好)

img

我代码问题

img

img

img

img

img

  • 写回答

3条回答 默认 最新

  • 优质网络系统领域创作者 新星创作者: 信息安全技术领域 2022-08-24 08:27
    关注

    Sqlite是一个小型的本地数据库管理软件,对于保存一些软件配置参数或量不是很大的数据是相当的方便,Qt本身已经自带了Sqlite的驱动,直接使用相关的类库即可。

    个人总结: 利用Qt实现sqlite的交互主要就是利用Qt内部封装的类库,将SQLite语句发送给SQLite软件,实现创建、修改、获取数据库的操作,QSqlDatabase类实现数据库的连接,QSqlQuery执行指定的SQLite语句。

    使用过程中的参考文档:SQL 教程;SQLite 教程;MySQL 教程

    Qt交互sqlite参考地址:QT-QSqlQuery类操作SQLite数据库(创建、查询、删除、修改)详解,在Qt中使用SQLite数据库

    1. Sqlite软件下载安装

    本人使用的是sqlite expert personal 5.3,它是主流SQLite数据库管理工具SQLite Expert的个人免费版,拥有我们最常用的SQLite数据库管理和开发功能,虽然不如SQLite Expert Professional强大,但是对于个人用户来说已经够用了。
    具体的安装下载地址大家可以百度(本来我是想上传博客的,但是显示已经有相关资源了)
    软件包:

    软件打开后:

    通过这个界面可以手动的创建database、table和record(不是我想说英文,是你会发现后期编程会经常碰到相关词汇,中文写出来怕大家对应不上)。

    1. Qt代码讲解

    2.1 .pro中增加对应的基类

    QT += core gui sql
    2.2 数据交互代码讲解

    操作的代码很简单,主要就是使用 QSqlDatabase类实现数据库的连接, QSqlQuery执行指定的SQLite语句。
    QSqlDatabase类指定驱动建立数据库连接
    //创建QSQLITE驱动连接
    sqliteDb=QSqlDatabase::addDatabase("QSQLITE");
    1
    2
    可以看到Qt内部已经封装了多种数据库操作的驱动。

    在open之前给连接的数据库设置name,如果已经存在不会覆盖,直接进行操作
    sqliteDb.setDatabaseName("SqliteDb.db");
    1

    open数据库后才能进行相关操作
    sqliteDb.open();
    1
    QSqlQuery执行指定的SQLite语句,将程序中的sql语言发送给SQLite软件执行操作
    //创建table
    sqliteQuery->exec("create table user1(u,p)");
    //创建table下的record
    sqliteQuery->exec("insert into user1(u,p) values('sss','123')");
    sqliteQuery->exec("insert into user1(u,p) values('sss','123')");
    sqliteQuery->exec("insert into user1(u,p) values('sss','123')");
    1
    2
    3
    4
    5
    6
    2.3 详细代码

    SqliteTest.h
    #ifndef SQLITETEST_H
    #define SQLITETEST_H

    #include
    #include
    #include

    class SqliteTest : public QWidget
    {
    Q_OBJECT

    public:
    SqliteTest(QWidget *parent = 0);
    ~SqliteTest();

    private:
    QSqlDatabase sqliteDb;
    QSqlQuery *sqliteQuery;
    };

    #endif // SQLITETEST_H
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    SqliteTest.cpp
    #include "SqliteTest.h"

    SqliteTest::SqliteTest(QWidget *parent)
    : QWidget(parent)
    {
    sqliteDb=QSqlDatabase::addDatabase("QSQLITE");
    sqliteDb.setDatabaseName("SqliteDb.db");
    sqliteDb.open();

    sqliteQuery=new QSqlQuery();
    sqliteQuery->exec("create table user1(u,p)");
    sqliteQuery->exec("insert into user1(u,p) values('sss','123')");
    sqliteQuery->exec("insert into user1(u,p) values('sss','123')");
    sqliteQuery->exec("insert into user1(u,p) values('sss','123')");
    

    }

    SqliteTest::~SqliteTest()
    {

    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21

    评论

报告相同问题?

问题事件

  • 系统已结题 9月1日
  • 请采纳用户回复 8月30日
  • 赞助了问题酬金10元 8月24日
  • 赞助了问题酬金10元 8月24日
  • 展开全部