QT實(shí)現(xiàn)讀寫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ì)寫從數(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ù)的類。它支持多種格式,包括INI、注冊(cè)表和JSON等。在這個(gè)示例中,使用了INI格式(通過(guò)QSettings::IniFormat)。
settings.value(“client/user”)表示從QSettings對(duì)象中獲取名為"client/user"的配置項(xiàng)的值,返回一個(gè)QVariant類型的對(duì)象。value函數(shù)接受一個(gè)參數(shù),即指定配置項(xiàng)的路徑(鍵)。在這個(gè)示例中,"client/user"是my.ini文件中存儲(chǔ)用戶名的位置。
為了將QVariant對(duì)象轉(zhuǎn)換為QString類型,可以調(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類型,以便在后續(xù)的代碼中使用或進(jìn)行其他操作。同樣地,也可以使用類似的方法獲取其他配置項(xiàng)的值。
到此這篇關(guān)于QT實(shí)現(xiàn)讀寫ini文件的示例代碼的文章就介紹到這了,更多相關(guān)QT讀寫ini文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Qt開(kāi)發(fā)之QTreeWidget的使用教程詳解
這篇文章主要為大家詳細(xì)介紹了Qt中QTreeWidget使用的相關(guān)資料,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Qt有一定的幫助,感興趣的小伙伴可以了解一下2022-12-12
基于C語(yǔ)言編寫一個(gè)簡(jiǎn)單的Web服務(wù)器
C語(yǔ)言可以干大事,這篇文章主要為大家詳細(xì)介紹了如何基于C語(yǔ)言可以完成一個(gè)簡(jiǎn)易的Web服務(wù)器,希望這篇文章會(huì)幫你你對(duì)C語(yǔ)言有更深入的理解2024-03-03
C++實(shí)現(xiàn)動(dòng)態(tài)數(shù)組功能
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)動(dòng)態(tài)數(shù)組功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11
C++ Boost PropertyTree示例超詳細(xì)講解
Boost是為C++語(yǔ)言標(biāo)準(zhǔn)庫(kù)提供擴(kuò)展的一些C++程序庫(kù)的總稱。Boost庫(kù)是一個(gè)可移植、提供源代碼的C++庫(kù),作為標(biāo)準(zhǔn)庫(kù)的后備,是C++標(biāo)準(zhǔn)化進(jìn)程的開(kāi)發(fā)引擎之一,是為C++語(yǔ)言標(biāo)準(zhǔn)庫(kù)提供擴(kuò)展的一些C++程序庫(kù)的總稱2022-11-11
C++基本用法實(shí)踐之移動(dòng)語(yǔ)義詳解
移動(dòng)(move)語(yǔ)義是C++引入了一種新的內(nèi)存優(yōu)化,以避免不必要的拷貝,下面小編就來(lái)和大家簡(jiǎn)單聊聊C++中移動(dòng)語(yǔ)義的相關(guān)使用吧,希望對(duì)大家有所幫助2023-07-07

