QT实现读写ini文件的示例代码
作者:ICE2302
最开始的需求是使用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文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!