解析qt中的ini文件

We *_*org -1 ini qt parsing label

我正在使用自定义的INI解析器,其参数是表单名称,父窗口小部件.语法如下所示:

int width = w->findchild("form_name","section_to_be_accessed_name").toInt();
Run Code Online (Sandbox Code Playgroud)

我的语法可能有点不对,因为我现在没有代码.我想添加INI文件第2页中提到的一些标签.这些图像的属性在ini文件本身中提到.即使是绝对的道路等.

我尝试了多种组合,但它不起作用.任何人都可以给我一个相同的语法吗?这里的回报值应该是多少?一个标签,我已经在Qt设计器中创建了标签.让我们说吧label1.但是有很多标签.请告诉我.

phy*_*att 7

QSettings是一个很好的类,适用于处理INI文件.我会检查一下.它已经过优化,非常强大.它还QVariant以非常智能的方式使用.它还可以很好地处理"群组".

http://qt-project.org/doc/qt-4.8/qsettings.html

// in your main, or somewhere very early in your program
qApp->setApplicationName("Star Runner");
qApp->setOrganizationName("MySoft");

QSettings::setDefaultFormat(QSettings::IniFormat);
Run Code Online (Sandbox Code Playgroud)

稍后当您要访问或设置设置时

QSettings s;  // in windows this would be
// C:/Users/<username>/AppData/Roaming/MySoft/Star Runner.ini
Run Code Online (Sandbox Code Playgroud)

或者您可以通过这种方式指定ini文件以指向特定的ini文件

QSettings::QSettings ( const QString & fileName, Format format, QObject * parent = 0 )

QSettings s("path/to/my/inifile.ini", QSettings::IniFormat);
Run Code Online (Sandbox Code Playgroud)

现在使用设置变量的示例:

// set the setting
s.setValue("group_name/setting_name", new_value); 

// retrieve the setting
// Note: Change "toType" to whatever type that this setting is supposed to be
current_value = s.value("group_name/setting_name", default_value).toType(); 
Run Code Online (Sandbox Code Playgroud)

如果你想处理嵌套元素和gui布局和设计,我会看看XML或JSON.两者都得到了Qt的支持.

XML是Qt Creator存储由Qt Designer创建的UI文件的本机方式.

http://qt-project.org/doc/qt-5.0/qtxml/qtxml-module.html

http://qt-project.org/doc/qt-5.0/qtcore/json.html

希望有所帮助.

  • 我不确定我是否喜欢它现在看起来如何,但我的大部分答案都指向用户指向文档的正确部分.耸肩. (3认同)