1. 程式人生 > >Qt中QSettings的用法(記住密碼和自動登入)

Qt中QSettings的用法(記住密碼和自動登入)

百度到的一些有關於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();
}

結果就是這樣的: