QT實(shí)現(xiàn)讀寫(xiě)ini文件的示例代碼
最開(kāi)始的需求是使用qt讀取不同電腦上的MySQL的my.ini文件實(shí)現(xiàn)在不同電腦上也可以成功登錄數(shù)據(jù)庫(kù),不用擔(dān)心密碼和用戶名不同的問(wèn)題
到之后發(fā)現(xiàn)其實(shí)并沒(méi)有什么用,因?yàn)閙y.ini文件中默認(rèn)是沒(méi)有user和password項(xiàng)目的看網(wǎng)上說(shuō)是老版本遺留下來(lái)的,我個(gè)人覺(jué)得它的作用可能就是改一下端口號(hào),然后電腦可以同時(shí)存在兩個(gè)版本的數(shù)據(jù)庫(kù),當(dāng)然了可以自己填上去,然后到時(shí)候直接讀也可以之后會(huì)寫(xiě)從數(shù)據(jù)庫(kù)中讀取信息等相關(guān)操作的實(shí)現(xiàn)
源代碼
記得要在.pro文件中加上QT+=sql還有在debug之后加上libmysql.dll動(dòng)態(tài)庫(kù)文件
文件結(jié)構(gòu)

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_Hmysql.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";
// 創(chuàng)建QSettings對(duì)象
QSettings settings(filePath, QSettings::IniFormat);
// 讀取MySQL的用戶名和密碼
sqlname= settings.value("client/user").toString();
sqlpasswd= settings.value("client/password").toString();
sqlport=settings.value("client/port").toString();
// 打印結(jié)果
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文件截圖

運(yùn)行截圖

QSettings
QSettings是Qt提供的用于訪問(wèn)和修改應(yīng)用程序配置數(shù)據(jù)的類(lèi)。它支持多種格式,包括INI、注冊(cè)表和JSON等。在這個(gè)示例中,使用了INI格式(通過(guò)QSettings::IniFormat)。
settings.value(“client/user”)表示從QSettings對(duì)象中獲取名為"client/user"的配置項(xiàng)的值,返回一個(gè)QVariant類(lèi)型的對(duì)象。value函數(shù)接受一個(gè)參數(shù),即指定配置項(xiàng)的路徑(鍵)。在這個(gè)示例中,"client/user"是my.ini文件中存儲(chǔ)用戶名的位置。
為了將QVariant對(duì)象轉(zhuǎn)換為QString類(lèi)型,可以調(diào)用toString()函數(shù)。這將返回一個(gè)QString對(duì)象,內(nèi)容與原始配置項(xiàng)的值相匹配。
因此,settings.value(“client/user”).toString()的意思是從QSettings對(duì)象中獲取"client/user"配置項(xiàng)的值,并將其轉(zhuǎn)換為QString類(lèi)型,以便在后續(xù)的代碼中使用或進(jìn)行其他操作。同樣地,也可以使用類(lèi)似的方法獲取其他配置項(xiàng)的值。
到此這篇關(guān)于QT實(shí)現(xiàn)讀寫(xiě)ini文件的示例代碼的文章就介紹到這了,更多相關(guān)QT讀寫(xiě)ini文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語(yǔ)言單向鏈表的表示與實(shí)現(xiàn)實(shí)例詳解
這篇文章主要介紹了C語(yǔ)言單向鏈表的表示與實(shí)現(xiàn),需要的朋友可以參考下2014-07-07
C++中賦值運(yùn)算符與逗號(hào)運(yùn)算符的用法詳解
這篇文章主要介紹了C++中賦值運(yùn)算符與逗號(hào)運(yùn)算符的用法詳解,是C++入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-09-09
C語(yǔ)言 表、棧和隊(duì)列詳解及實(shí)例代碼
這篇文章主要介紹了C語(yǔ)言 表、棧和隊(duì)列詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2017-02-02
C++返回值類(lèi)型后置實(shí)現(xiàn)(跟蹤返回值類(lèi)型)
本文主要介紹了C++返回值類(lèi)型后置實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
C語(yǔ)言?隊(duì)列的實(shí)現(xiàn)全解析
隊(duì)列(Queue)與棧一樣,是一種線性存儲(chǔ)結(jié)構(gòu),它具有如下特點(diǎn):隊(duì)列中的數(shù)據(jù)元素遵循“先進(jìn)先出”(First?In?First?Out)的原則,簡(jiǎn)稱FIFO結(jié)構(gòu)。在隊(duì)尾添加元素,在隊(duì)頭刪除元素2022-04-04

