如何使用Qt C ++函数返回多个不同的数据类型?

时间:2018-09-05 09:49:54

标签: c++ qt

我最近开始qt并被问到我是否可以建立一个简单的函数,以一种方法(例如登录)返回具有不同类型的int字符串数据时间的数据,以防我通过方法用户名和密码,它将返回所有用户数据我在哪里可以在主窗体中调用该函数并在其中使用用户数据。我已经搜索并找到了一些示例,但仍然很难实现,我已经使用了这个示例,但是它仅返回一个值,不再是代码

bool database_mysql::test_query(QList<QString>& namesList)
{
    bool result = false;
    namesList.clear();//clear possible old entries

    if(!connect()){
        qDebug() << "Database Not Connected!";
    }else{
        QSqlQuery query;
        query.exec("SELECT * FROM Users");
        while (query.next()){
            QString name = query.value(2).toString();
            namesList.append(name);
         }
        result = true;
    }
    return result;
}

以及用于传递用户名和密码以检查用户的代码 谁能帮忙。

1 个答案:

答案 0 :(得分:0)

您应该声明自己的class / struct来保存此数据。例如,您可以使用以下声明创建文件User.h

#pragma once

struct User {
    int       id;
    QString   name;
    QDateTime joined;
    // anything else in your DB
};

在数据库模块的标题中(例如database_mysql.h):

#pragma once

struct User; // forward declaration

class database_mysql {
public:
    bool database_mysql::test_query(QList<User>& users);
};

然后,在数据库源文件(例如database_mysql.cpp)中:

#include <database_mysql.h>
#include <User.h>

bool database_mysql::test_query(QList<User>& users) {
    ...
}

然后,test_query函数应从数据库中检索行,实例化User对象,然后将这些对象插入users列表中。