Qt中QSettings的用法(记住密码和自动登录)

百度到的一些有关于QSettings 的用法,大多都大同小异,都是摘自Qt的帮助文档,而问题时钟没有解决。其实最有用的还是Qt的帮助文档,阅读了QSettings的帮助文档后,经过一些探索,终于将QSettings记录登录信息摸索出来;

大体结构是这样的,在保存信息是,建立文件,将信息保存在文件里面,在点击登录按钮时,保存信息,在下一次的重新构造时,将保存在文件里面的信息取出来并显示在界面上,这样我们就只管的实现了记住密码。直接上代码:

/*********************.h 文件*************************/

#include

QString		username;
QString		passwd;
QString		AutoLogin;
QString		RemeberPasswd;
bool		remeberPasswd;
bool		autologin;
void		savecfg();
void		loadcfg();

/**********************.cpp文件******************/

#define LOAD_CFG_VARIANT(x) cfg.value(#x)
#define SAVE_CFG_VARIANT(x) cfg.setValue(#x, x)/**勾选记住密码,定义一个标志位*/
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()
{QSetting cfg("fzconfig.ini",QSettings::IniFormat);username= ui->Accout->currentText();passwd= ui->PasswdEdit->text();//在这儿使用了宏定义,也可以将SAVE_CFG_VARIANT用cfg.setvalue代替,具体的宏定义在上面SAVE_CFG_VARIANT(username);SAVE_CFG_VARIANT(passwd);SAVE_CFG_VARIANT(autologin);SAVE_CFG_VARIANT(remeberPasswd);cfg.sync();
}
/**初始化时显示登录信息**/
void Widget::loadcfg()
{QSettings  cfg("fzconfig.ini",QSettings::IniFormat);//在这儿使用了宏定义,也可以将LOAD_CFG_VARIANT用cfg.value代替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();
}

结果就是这样的:

最近 对 QSettings 类的使用有一些其他多的总结,请参考。《QSettings实现记住密码》


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部