Qt中QSettings的用法(記住密碼和自動登入)
阿新 • • 發佈:2019-01-10
百度到的一些有關於QSettings 的用法,大多都大同小異,都是摘自Qt的幫助文件,而問題時鐘沒有解決。其實最有用的還是Qt的幫助文件,閱讀了QSettings的幫助文件後,經過一些探索,終於將QSettings記錄登入資訊摸索出來;
大體結構是這樣的,在儲存資訊是,建立檔案,將資訊儲存在檔案裡面,在點選登入按鈕時,儲存資訊,在下一次的重新構造時,將儲存在檔案裡面的資訊取出來並顯示在介面上,這樣我們就只管的實現了記住密碼。直接上程式碼:
/*********************.h 檔案*************************/
#include<QSettings>
QString username;
QString passwd;
QString AutoLogin;
QString RemeberPasswd;
bool remeberPasswd;
bool autologin;
void savecfg();
void loadcfg();
/**********************.cpp檔案******************/
/**勾選記住密碼,定義一個標誌位*/ void Widget::on_Rem_Passwd_clicked() { if(ui->Rem_Passwd->isChecked()) { remeberPasswd= true; } else { ui->PaswdEditr->clear(); remeberPasswd= false; } } /**勾選自動登入,定義一個標誌位*/ void Widget::on_Autoin_Log_clicked() { if(ui->Auto_Log->isChecked()) { autologin= true; } else { autologin= false; } } /**儲存登入資訊**/ void Widget::savecfg() { QSettingscfg("fzconfig.ini",QSettings::IniFormat); username= ui->Accout->currentText(); passwd= ui->PasswdEdit->text(); SAVE_CFG_VARIANT(username); SAVE_CFG_VARIANT(passwd); SAVE_CFG_VARIANT(autologin); SAVE_CFG_VARIANT(remeberPasswd); cfg.sync(); } /**初始化時顯示登入資訊**/ void Widget::loadcfg() { QSettingscfg("fzconfig.ini",QSettings::IniFormat); username= LOAD_CFG_VARIANT(username).toString(); passwd= LOAD_CFG_VARIANT(passwd).toString(); AutoLogin= LOAD_CFG_VARIANT(autologin).toString(); RemeberPasswd= LOAD_CFG_VARIANT(remeberPasswd).toString(); ui->Accout->addItem(username); ui->PasswdEdit->setText(passwd); if(RemeberPasswd== "true") { ui->Rem_Passwd->setChecked(true); } if(AutoLogin== "true") { ui->Auto_Log->setChecked(true); } } /**登入按鈕**/ void Widget::on_btn_login_clicked() { savecfg(); }
結果就是這樣的: