QT實(shí)現(xiàn)讀寫ini文件的示例代碼
最開始的需求是使用qt讀取不同電腦上的MySQL的my.ini文件實(shí)現(xiàn)在不同電腦上也可以成功登錄數(shù)據(jù)庫,不用擔(dān)心密碼和用戶名不同的問題
到之后發(fā)現(xiàn)其實(shí)并沒有什么用,因?yàn)閙y.ini文件中默認(rèn)是沒有user和password項(xiàng)目的看網(wǎng)上說是老版本遺留下來的,我個(gè)人覺得它的作用可能就是改一下端口號(hào),然后電腦可以同時(shí)存在兩個(gè)版本的數(shù)據(jù)庫,當(dāng)然了可以自己填上去,然后到時(shí)候直接讀也可以之后會(huì)寫從數(shù)據(jù)庫中讀取信息等相關(guān)操作的實(shí)現(xiàn)
源代碼
記得要在.pro文件中加上QT+=sql
還有在debug之后加上libmysql.dll動(dòng)態(tài)庫文件
文件結(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_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"; // 創(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提供的用于訪問和修改應(yīng)用程序配置數(shù)據(jù)的類。它支持多種格式,包括INI、注冊(cè)表和JSON等。在這個(gè)示例中,使用了INI格式(通過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)文章
C語言單向鏈表的表示與實(shí)現(xiàn)實(shí)例詳解
這篇文章主要介紹了C語言單向鏈表的表示與實(shí)現(xiàn),需要的朋友可以參考下2014-07-07C++中賦值運(yùn)算符與逗號(hào)運(yùn)算符的用法詳解
這篇文章主要介紹了C++中賦值運(yùn)算符與逗號(hào)運(yùn)算符的用法詳解,是C++入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-09-09C++返回值類型后置實(shí)現(xiàn)(跟蹤返回值類型)
本文主要介紹了C++返回值類型后置實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08