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文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C++超详细介绍模板

    C++超详细介绍模板

    人们需要编写多个形式和功能都相似的函数,因此有了函数模板来减少重复劳动;人们也需要编写多个形式和功能都相似的类,于是 C++ 引人了类模板的概念,编译器从类模板可以自动生成多个类,避免了程序员的重复劳动
    2022-07-07
  • C语言单向链表的表示与实现实例详解

    C语言单向链表的表示与实现实例详解

    这篇文章主要介绍了C语言单向链表的表示与实现,需要的朋友可以参考下
    2014-07-07
  • C++中赋值运算符与逗号运算符的用法详解

    C++中赋值运算符与逗号运算符的用法详解

    这篇文章主要介绍了C++中赋值运算符与逗号运算符的用法详解,是C++入门学习中的基础知识,需要的朋友可以参考下
    2015-09-09
  • C++如何实现DNS域名解析

    C++如何实现DNS域名解析

    这片文章介绍了C++如何实现DNS域名解析,还有对相关技术的介绍,代码很详细,需要的朋友可以参考下
    2015-07-07
  • 详解C++中future和promise的使用

    详解C++中future和promise的使用

    future和promise的作用是在不同线程之间传递数据,这篇文章主要为大家详细介绍了C++中future和promise的具体使用,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-05-05
  • C语言 表、栈和队列详解及实例代码

    C语言 表、栈和队列详解及实例代码

    这篇文章主要介绍了C语言 表、栈和队列详解及实例代码的相关资料,需要的朋友可以参考下
    2017-02-02
  • C++返回值类型后置实现(跟踪返回值类型)

    C++返回值类型后置实现(跟踪返回值类型)

    本文主要介绍了C++返回值类型后置实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • C语言 队列的实现全解析

    C语言 队列的实现全解析

    队列(Queue)与栈一样,是一种线性存储结构,它具有如下特点:队列中的数据元素遵循“先进先出”(First In First Out)的原则,简称FIFO结构。在队尾添加元素,在队头删除元素
    2022-04-04
  • C语言怎么获得进程的PE文件信息

    C语言怎么获得进程的PE文件信息

    这篇文章主要介绍了C语言怎么获得进程的PE文件信息的相关代码,需要的朋友可以参考下
    2016-01-01
  • c++超细致讲解引用

    c++超细致讲解引用

    引用(reference)就是C++对C语言的重要扩充。引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样
    2022-05-05

最新评论