[轉]linux下QSettings讀寫配置檔案
啟動時讀取檔案、關閉時寫入配置--------------記錄程式的預設配置,位置大小或者最近開啟的檔案列表等引數
QSettings的使用也是非常簡單和方便的,當然我也只是今天簡單測了一下,沒有把幫助文件裡的所有例子都使用一下,不過單純的讀取和寫入配置檔案已經能滿足我日常的工作了,在這裡也是記錄下:
先構造一個QSettings物件,傳入兩個值:公司名稱和程式名稱
之後就可以通過這個settings對方去讀取和寫入配置檔案了,讀取時使用value方法,返回一個QVariant型別,toString()轉到QString,toInt()轉到int型別,其它的也類似;寫入時使用setValue()方法,就像鍵值對資料一樣,一個key對應一個data,可儲存的資料有QString、QRect、QColor甚至是QImage等等,型別繁多,簡單易用哦。
如果想在程式任何地方任何時間去讀寫配置檔案,都需要構建一個QSettings物件,並且指明具體的引數值,也就是公司名和程式名,這樣還是不夠方便的,想更簡單點就在程式開始時直接指定一次公司名和程式名,之後直接使用預設的QSettings構造物件去讀寫配置即可:
看文件裡,配置檔案儲存的位置是可以找到的,我常在linux系統下做開發,一般預設儲存在“$HOME/.config/公司名/程式名.conf”這裡:
預設檔案是conf字尾的,可以通過更改QSettings的Format設定為ini字尾,不過感覺沒什麼區別的。
測試例子:
int main(int argc, char *argv[]) { QApplication a(argc, argv); QCoreApplication::setOrganizationName("XXX"); //QCoreApplication::setOrganizationDomain("www.xxxxxx.com"); QCoreApplication::setApplicationName("xxx"); QSettings settings; settings.setDefaultFormat(QSettings::IniFormat); MainWindow w; w.show(); return a.exec(); }
#include "mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { m_conf = ""; QSettings settings; m_conf = settings.value("settings/conf","aaaa").toString(); qDebug() << m_conf; QRect rect = settings.value("settings/geometry",QRect(200, 200, 400, 400)).toRect(); move(rect.topLeft()); resize(rect.size()); } MainWindow::~MainWindow() { QSettings settings; settings.setValue("settings/conf", "wqert"); settings.setValue("settings/geometry", geometry()); }
第一次程式啟動時,讀取settings 程式位置大小等引數值,函式value()的第二個引數為預設值,因為第一次啟動沒寫配置檔案。
---------------------
作者:蝦米小小小
來源:CSDN
原文:https://blog.csdn.net/qq_32417149/article/details/106012869
版權宣告:本文為作者原創文章,轉載請附上博文連結!