0

当我在 Linux SLES 11 机器上使用以下代码时,.ini 文件由于某种原因正在重新创建,因此我无法恢复我的设置。

相同的代码在 Windows 机器上运行良好。

Prb:我想在启动窗口有最近打开的文件列表,以便用户可以快速选择。

void Window::saveRecentFileList()
{
    QSettings settings(m_settingsPath, QSettings::NativeFormat);
    settings.setValue("recentFiles/list", QVariant(m_recentFilesList));
}

void Window::restoreRecentFileList()
{
    QSettings settings(m_settingsPath, QSettings::NativeFormat);
    m_recentFilesList = settings.value("recentFiles/list").toStringList();
}
4

1 回答 1

0

尝试使用QSettings::IniFormat而不是QSettings::NativeFormat. 在 Windows 上,无论如何您都应该使用QSettings::IniFormat特定的 ini 文件位置。Linux 使用 ini 文件作为设置存储的本机格式,但QSettings 文档建议:

在所有平台上,如果要直接读取 INI 文件,可以使用 QSettings 构造函数,该构造函数将文件名作为第一个参数,并将 QSettings::IniFormat 作为第二个参数传递。

于 2015-06-19T17:39:54.137 回答