前言:
眼前小伙伴们对“jsforinie8”都比较关怀,同学们都想要分析一些“jsforinie8”的相关知识。那么小编同时在网上收集了一些对于“jsforinie8””的相关知识,希望大家能喜欢,同学们一起来学习一下吧!一、简介
在日常的工作中,有时候需要将部分信息保存到本地,也就是写入到INI文件中,便于下次使用;在Qt中可以使用QSetting来进行INI文件的读写。
二、常用函数介绍
(1).void QSettings::beginGroup(const QString & prefix)
相当于在INI文件中添加了一个索引,根据索引的不同,可以读取相对应的值
(2).void QSettings::endGroup()
将组重置为相应的eginGroup()调用之前的状态。
(3).void QSettings::setValue(const QString & key, const QVariant & value)
向INI文件中写入信息,信息以键值对的方式写入到INI文件中,如果key值已经存在了,那么key对应的value值便会被新值覆盖掉。
(4).QVariant QSettings::value(const QString & key, const QVariant & defaultValue = QVariant()) const
从INI文件中读取信息,返回设置键的值,如果设置的键不存在,则返回defaultValue,如果未指定默认的值,则返回默认QVariant()。
(5).QString QSettings::group() const
返回当前的组名
Qt开发必备技术栈学习路线和资料
三、INI文件的读写
//从INI文件中读取信息void MainWindow::read_ini_file(){ QSettings ini_config("setting.ini", QSettings::IniFormat); ini_config.beginGroup("main_window"); QString group_name = ini_config.group(); QSize size = ini_config.value("size").toSize(); bool full_screen = ini_config.value("full_screen").toBool(); ini_config.endGroup(); qDebug() << "group_name:" << group_name << "size:" << size << "full_screen:" << full_screen;}
//向INI文件中写入信息void MainWindow::write_ini_file(){ QSettings ini_config("setting.ini", QSettings::IniFormat); ini_config.beginGroup("main_window"); ini_config.setValue("size", this->size()); ini_config.setValue("full_screen", this->isFullScreen()); ini_config.endGroup();}
写入结果:
读取结果:
四、数组信息写入到INI文件中
如果某组键多次出现,而且想要都保留下来的话,可以使用下列函数进行读写
(1).void QSettings::beginWriteArray(const QString & prefix, int size = -1)
将前缀添加到当前组并开始写入大小为大小的数组。如果 size 为 -1(默认),则根据写入的条目的索引自动确定。
(2).int QSettings::beginReadArray(const QString & prefix)
将前缀添加到当前组并开始从数组中读取。返回数组的大小。
(3).void QSettings::endArray()
关闭使用 beginReadArray() 或 beginWriteArray() 启动的数组。
//向INI文件中写入信息void MainWindow::write_ini_file(){ Login login_infos[2]; login_infos[0].user_name = "test_one"; login_infos[0].password = "Password"; login_infos[1].user_name = "test_two"; login_infos[1].password = "Password123"; QSettings settings("setting.ini", QSettings::IniFormat); settings.beginWriteArray("logins"); for (int i = 0; i < 2; ++i) { settings.setArrayIndex(i); settings.setValue("user_name", login_infos[i].user_name); settings.setValue("password", login_infos[i].password); } settings.endArray();}
//从INI文件中读取信息void MainWindow::read_ini_file(){ QList<Login> logins; QSettings settings("setting.ini", QSettings::IniFormat); int size = settings.beginReadArray("logins"); for (int i = 0; i < size; ++i) { settings.setArrayIndex(i); Login login; login.user_name = settings.value("user_name").toString(); login.password = settings.value("password").toString(); logins.append(login); } settings.endArray(); foreach (Login info, logins) { qDebug() << "user_name:" << info.user_name << "password:" << info.password; }}
文章转自博客园(TechNomad):
Qt开发必备技术栈学习路线和资料
标签: #jsforinie8