草庐IT

qsettings

全部标签

xml - 选择什么设置存储格式?

我正在编写一个Qt应用程序,需要存储该程序的设置。我希望它们可以由非高级用户轻松编辑,但对高级用户足够灵活(因此允许通过其他程序、脚本等轻松进行自动编辑)。QSettings确实提供了两种格式,一种是native格式,对于Windows是注册表,另一种是INI格式,它是大多数其他平台的native格式。INI很好,但是在其中看到@QString(...)或其他Qt内容并不是真正可读的,而且有点容易出错。注册表也不是很好。它的设计初衷不是为了被弄乱,因此不适合编辑或高级使用;它确实解决了跨线程和多个QSettings对象的同步问题(所以我不会清除所有内容,尽管我可以只使用一个受读写锁柜保

c++ - 从 IniFormat 和 UserScope 创建的全局 QSettings 对象

我正在尝试将QSettings对象与IniFormat一起用于在应用程序开始时加载的UserScope设置。我将QSettings设置代码移动到一个单独的方法中,并从main()调用它,如以下代码片段所示:#include#include#includevoidloadSettings(){qDebug()结果输出是:[BEGIN]loadSettings()Loaded1keys.[END]loadSettings()Settingshas0keys.""查看documentationforQSettings,它声明使用QCoreApplication设置组织名称和应用程序名称将允许

windows - 使用 QSettings 在 Windows 上读取注册表值

我正在尝试使用QSettings从Windows注册表中读取MachineGuid键。该key的地址是"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography".我正在使用带有QSettings::Native标志的QSettings,如下所示。QSettingssettings("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography",QSettings::NativeFormat);我可以从regedit.exe查看所有子文件夹及其键和MachineGuid的值,但的value函数Q

windows - QSettings 用反斜杠替换斜杠(注册表)

我使用QSettings读取注册表。我想阅读的关键是:HKEY_LOCAL_MACHINE\SYSTEM\Setup\SourceOS(Updatedon8/1/201502:45:41)由于键名SourceOS(Updatedon8/1/201502:45:41)是动态的,所以我直接打开QSettingssettings("HKEY_LOCAL_MACHINE\\SYSTEM\\Setup",QSettings::NativeFormat);并通过settings.childGroups()递归运行并以此构建我的key:QStringkey=settings.fileName()+"

c++ - QSettings - 读取路径值的方式是什么?

使用windowsxp,我想从.ini文件中读取一个值。该值是一个路径。使用QSettings,调用“settings.value("key").toString()”的结果是不包括反斜杠的路径,因为反斜杠是转义字符。使用QSettings从ini文件读取路径的方法是什么? 最佳答案 AlthoughbackslashisaspecialcharacterinINIfiles,mostWindowsapplicationsdon'tescapebackslashes()infilepaths[...]QSettingsalwayst

c++ - Qt - 同一应用程序的多个拷贝打开和设置同步

我有一个非常标准的QtGUI应用程序。它使用Qt的QSettings来存储一些设置,并且一切正常。但是,当应用程序的多个拷贝启动时,其中一个或另一个更改了设置,不同的拷贝可能会出现不一致(因为一个拷贝具有数据的“旧”拷贝)。这个问题的首选解决方案是什么?我想即使在Qt领域之外也会出现这个问题。 最佳答案 QSettings文档在AccessingSettingsfromMultipleThreadsorProcessesSimultaneously中提到了这一点部分:QSettings可以安全地用于不同进程(可以是同时运行的应用程序

c++ - 我可以读取位于资源文件中的 .ini 文件吗?

#include"mainwindow.h"#include"ui_mainwindow.h"#include#includeMainWindow::MainWindow(QWidget*parent):QMainWindow(parent),ui(newUi::MainWindow){ui->setupUi(this);QSettings*qsettings=newQSettings(":/config.ini",QSettings::IniFormat);boolstatus=qsettings->value("preview","").toBool();qDebug()曾经我可以

c++ - Qt:如何在大小写不敏感模式下减去QString的两个QSet

我正在使用Qt解决一个逻辑问题。我有两个QString的QSet:QSetset1:["aaa","BBB"]QSetset2:["aaa","bbb","ccc","ddd"]我想从set2中减去set1,所以我使用:set2.subtract(set1);我得到:set2:["bbb","ccc","ddd"]但在那种情况下,“bbb”不会从set2中删除,尽管set1包含此记录。这是因为默认的QString::contains方法(它是QSet::subtract使用的方法)区分大小写。还有另一个QString::contains方法,它接受一个参数来定义区分大小写模式,但我真的

c++ - 使用 QSettings 存储 qt 应用程序的设置

您好,我已经使用qt创建了一个应用程序,并且我设法使用QSettings保存了它的一些设置。voidDoneIt::writeSettings(){QSettingssettings("mycompany","RightDoneIt");settings.beginGroup("DoneIt");settings.setValue("size",size());settings.setValue("pos",pos());settings.endGroup();}voidDoneIt::readSettings(){QSettingssettings("mycompany","Righ

c++ - QSettings(Qt 5.4) : setValue doesn't work properly

在我的.cpp中,我正在使用QSettings。这以前在Qt4.8中有效:#include----------QSettingssettings;settings.setValue("time_axis_direction",1);inttest_var=settings.value("time_axis_direction").toInt();----------test_var程序返回0,请问是什么原因?我将Qt与VS插件一起使用。 最佳答案 根据docs,你必须设置组织名称和应用程序名称:QCoreApplication::s