QT读写ini文件

QT读写ini文件

      • 源代码
        • 文件结构
        • mysql.h
        • mysql.cpp
        • main.cpp
      • my.ini文件截图
      • 运行截图
      • QSettings

最开始的需求是使用qt读取不同电脑上的MySQL的my.ini文件实现在不同电脑上也可以成功登录数据库,不用担心密码和用户名不同的问题
到之后发现其实并没有什么用,因为my.ini文件中默认是没有user和password项目的看网上说是老版本遗留下来的,我个人觉得它的作用可能就是改一下端口号,然后电脑可以同时存在两个版本的数据库,当然了可以自己填上去,然后到时候直接读也可以
之后会写从数据库中读取信息等相关操作的实现

源代码

记得要在.pro文件中加上QT+=sql还有在debug之后加上libmysql.dll动态库文件

文件结构

QT读写ini文件_第1张图片

mysql.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include
#include
#include
#include
#include
#include
#include 
QT_BEGIN_NAMESPACE
QT_END_NAMESPACE

class Mysql : public QWidget
{
    Q_OBJECT
public:
    Mysql(QWidget *parent = nullptr);
    ~Mysql();
    void init();
    QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
    QString sqlname,hostname,sqlpasswd,dbname,sqlport;
private:
};
#endif // MAINWINDOW_H
mysql.cpp
#include "mysql.h"

Mysql::Mysql(QWidget *parent)
    : QWidget(parent)
{

    init();
}

Mysql::~Mysql()
{

}

void Mysql::init()
{
    // 指定my.ini文件路径
    QString filePath = "E:\\SQL\\MYSQL_DATA\\my.ini";

    // 创建QSettings对象
    QSettings settings(filePath, QSettings::IniFormat);

    // 读取MySQL的用户名和密码
    sqlname= settings.value("client/user").toString();
    sqlpasswd= settings.value("client/password").toString();
    sqlport=settings.value("client/port").toString();
    // 打印结果
    qDebug() << "Username:" << sqlname;
    qDebug() << "Password:" << sqlname;
    qDebug() << "Password:" << sqlport;
}
main.cpp

#include "mysql.h"

#include 

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Mysql w;
    w.show();
    return a.exec();
}

my.ini文件截图

QT读写ini文件_第2张图片

运行截图

QT读写ini文件_第3张图片

QSettings

QSettings是Qt提供的用于访问和修改应用程序配置数据的类。它支持多种格式,包括INI、注册表和JSON等。在这个示例中,使用了INI格式(通过QSettings::IniFormat)。
settings.value(“client/user”)表示从QSettings对象中获取名为"client/user"的配置项的值,返回一个QVariant类型的对象。value函数接受一个参数,即指定配置项的路径(键)。在这个示例中,"client/user"是my.ini文件中存储用户名的位置。
为了将QVariant对象转换为QString类型,可以调用toString()函数。这将返回一个QString对象,内容与原始配置项的值相匹配。
因此,settings.value(“client/user”).toString()的意思是从QSettings对象中获取"client/user"配置项的值,并将其转换为QString类型,以便在后续的代码中使用或进行其他操作。同样地,也可以使用类似的方法获取其他配置项的值。

你可能感兴趣的:(QT,qt,开发语言,sql,database,mysql)