QT实现读写ini文件的示例代码

 更新时间:2023年07月26日 09:43:02   作者:ICE2302  
.ini文件是Initialization File的缩写,即初始化文件,本文主要给大家介绍了关于Qt读写ini文件的相关方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

最开始的需求是使用qt读取不同电脑上的MySQL的my.ini文件实现在不同电脑上也可以成功登录数据库,不用担心密码和用户名不同的问题

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

源代码

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

文件结构

mysql.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include<QWidget>
#include<QSql>
#include<QSqlDatabase>
#include<QDebug>
#include<QSqlQuery>
#include<QSqlRecord>
#include <QSettings>
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 <QApplication>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Mysql w;
    w.show();
    return a.exec();
}

my.ini文件截图

运行截图

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实现读写ini文件的示例代码的文章就介绍到这了,更多相关QT读写ini文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Qt开发之QTreeWidget的使用教程详解

    Qt开发之QTreeWidget的使用教程详解

    这篇文章主要为大家详细介绍了Qt中QTreeWidget使用的相关资料,文中的示例代码讲解详细,对我们学习Qt有一定的帮助,感兴趣的小伙伴可以了解一下
    2022-12-12
  • C++ STL中一些常用算法总结

    C++ STL中一些常用算法总结

    都说STL是数据容器与算法的高度组合,在前面的文章中我们介绍了常见的几种容器,vector、list、map、deque等,今天我们再来介绍下STL中常用的一些算法,需要的朋友可以参考下
    2024-02-02
  • 基于C语言编写一个简单的Web服务器

    基于C语言编写一个简单的Web服务器

    C语言可以干大事,这篇文章主要为大家详细介绍了如何基于C语言可以完成一个简易的Web服务器,希望这篇文章会帮你你对C语言有更深入的理解
    2024-03-03
  • c语言全局变量和局部变量问题及解决汇总

    c语言全局变量和局部变量问题及解决汇总

    局部变量能否和全局变量重名,如何引用一个已经定义过的全局变量,全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?,接下来为您一一介绍
    2013-01-01
  • 使用C++手搓一个TCP连接管理器

    使用C++手搓一个TCP连接管理器

    这篇文章主要为大家详细介绍了如何使用C++手搓一个TCP连接管理器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-09-09
  • C++实现动态数组功能

    C++实现动态数组功能

    这篇文章主要为大家详细介绍了C++实现动态数组功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • C语言常用的编辑器你知道几个

    C语言常用的编辑器你知道几个

    这篇文章主要为大家详细介绍了C语言常用的编辑器,中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • C++ POSIX API超详细分析

    C++ POSIX API超详细分析

    这篇文章主要介绍了C++ POSIXAPI的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-11-11
  • C++ Boost PropertyTree示例超详细讲解

    C++ Boost PropertyTree示例超详细讲解

    Boost是为C++语言标准库提供扩展的一些C++程序库的总称。Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一,是为C++语言标准库提供扩展的一些C++程序库的总称
    2022-11-11
  • C++基本用法实践之移动语义详解

    C++基本用法实践之移动语义详解

    移动(move)语义是C++引入了一种新的内存优化,以避免不必要的拷贝,下面小编就来和大家简单聊聊C++中移动语义的相关使用吧,希望对大家有所帮助
    2023-07-07

最新评论