问题标签 [qsettings]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 从 QSettings 派生并存储 QIcon
我尝试使用派生自 QSettings 的类存储 QIcon,如下所示:
setValue("fancy_icon", QIcon::fromTheme("document-new"));
但我有一个错误:
QVariant::save: 无法保存类型 69。
它不起作用。令人惊讶的是,如果我只是构造一个 QSettings 实例并保存 69 个类型(QIcon)元素中的任何一个 - 它工作正常。
问题是 - 为什么现在它起作用了?我怎样才能做得更好?
pyqt4 - 使用带有布尔值的 Qsettings 迭代设置字典
嗯,我认为我很聪明地用(Python)字典管理我的 PyQt 设置。这样,我认为我至少可以迭代设置以进行保存和比较。
但是在使用布尔值时我遇到了问题。
我有一个方法
只要 s 中没有任何布尔值,它就可以工作。
如果字典中有布尔值,该函数总是返回 True。
取消注释该print
行会显示问题并导致
所以问题是:true
QSettings 返回的这个小写字母是什么,我怎样才能让 Python 正确地将它与布尔值进行比较?
我读到你应该用它toBool()
来弥补不同平台上的不同表示。但我不知道如何在这样的循环中做到这一点(即事先不知道要比较什么类型)。
任何提示或解决方案表示赞赏!
.net - 如何在 Qt 4.8.4 应用程序中使用混合模式 .net 程序集?
在我的 Qt 应用程序中,我使用使用 Microsoft.DirectX 库的 COM 包装的 .net 程序集。当我启动我的应用程序时,它会崩溃并在输出中显示以下详细信息
据我所知,.Net 的 Microsoft.DirectX 库是 1.1 版本,程序集是 4.0,这是问题的根源。
我尝试在简单的 c++ winForms 应用程序中使用这个程序集,通过添加带有以下代码的 app.config 文件解决了同样的问题
但 Qt 似乎不支持 app.config 文件。如何在 Qt 配置中设置这个useLegacyV2RuntimeActivationPolicy ?我尝试通过 QSettings 并没有成功。或者 Qt 可能还有其他一些解决方法?
我还尝试禁用 LoaderLock 异常(Debug->Exceptions->Managed Debugging Assistants)。但它也没有成功。
谢谢
symbols - QSettings 将百分比符号添加到组名
我有 ini 格式的 QSettings 对象。
当我settings.beginGroup("GENERAL")
在ini文件中写入时,我看到以下内容:
[%General]
为什么会这样?
c++ - Qt - 将 QString 路径保存到注册表中的 QSettings
我有一个应用程序,用户可以更改保存文件的默认文件夹。
用户保存文件的文件夹:QString SaveImagesDirectory;
我希望当用户退出应用程序时,SaveImagesDirectory 中的数据将保存在注册表中。
我尝试了以下代码:
问题是当我刷新注册表时,LastSaveImagesDirectory 中没有值。
因此,当我尝试使用以下代码阅读时:
变量 SaveImagesDirectory 只得到QDir::currentPath()
. 我查看了注册表,确实LastSaveImagesDirectory
没有任何价值。
qt - 如果值包含逗号字符,如何使用 QSetting 读取值
在我的 QT 项目中,我正在使用 QSettings 从 .ini 文件中读取值。如果该值包含逗号字符,QSettings 将无法读取它。我应该如何阅读这些价值观?
c++ - 向 QSettings 编写和读取自定义类
我需要通过 QSettings 在注册表中存储自定义类的实例。在阅读了 Qt 的文档后,我想我已经实现了所需的功能,但我没有设法保存任何东西。
这是我的自定义类:
保存在注册表中:
从注册表加载:
在注册表中创建了一个新键,但它包含我认为只是类名的十六进制代码......
知道如何有效地存储这些值吗?
qt - 关于 QSettings、qmlRegisterType() 和 setContextProperty 的一些查询
我将尝试通过我目前正在开发的应用程序来解释我的困惑。
我的应用程序(基于 Qt5.1 + Qt Quick Controls)与 Facebook API 交互以管理 Facebook 页面。我试图将 QML 代码(用于 UI)与 C++ 核心尽可能分开。
现在,需要 OAuth2 实现才能与 Facebook API 交互。为此,我有一个 C++ OAuth2 类,其构造函数具有以下签名:
OAuth2::OAuth2(QString appId, QString redirectUrl, QStringList 权限);
现在,由于 OAuth 过程需要一个浏览器,我还实现了一个 OAuthBrowser.qml,它使用 OAuth2 来完成授权。
我有以下选项可以将 OAuth2 类公开给 OAuth2Browser:
- 实例化 OAuth2 并使用 setContextProperty() 将实例公开给 OAuth2Browser。但是,这意味着我的 C++ 代码必须处理 UI 代码。更令人费解的问题是 OAuth2Browser 是一个辅助窗口。当用户单击 MainWindow 上的“授权”窗口时,
AppController C++ 对象(连接到 MainWindow)将启动 OAuth2Browser 窗口。因此,OAuth2Browser 的实例化代码将深入到 AppController 方法中。如果只有 main.cpp 必须处理窗口创建,那就太好了。 - 使用 qmlRegisterType()。在这种情况下,我无法将参数传递给构造函数。所以,我必须实现一个初始化 OAuth2 对象的 init() 方法。然后,我会在 OAuth2Browser 的 Component.onCompleted() 方法中调用这个 init() 方法。但是,在这种方法中,我必须将 QSettings 暴露给 UI 代码 - QML 窗口,以便 init() 方法所需的参数可以被取回。我非常怀疑将应用程序设置直接暴露给 QML UI 是否是一个好主意。
- 在 OAuth2 构造函数中隐式使用 QSettings。这样,我就不必传递任何参数,并且可以使用 qmlRegisterType()。然而,这意味着我正在“幕后”做一些神奇的事情。我没有显式传递 QSettings 实例,而是在任何我想使用的地方使用它,从而对公共 API 隐藏了初始化细节。
在 IRC 上建议了基于第三个选项的替代方案 - 如果没有将参数传递给构造函数,则使用 initFromSettings() 类型的方法来初始化实例。这样,初始化不会被隐藏,并且 initFromSettings() 可以自信地在其内部使用 QSettings。现在,我可以愉快地使用 qmlRegisterType() 在 QML 中实例化 OAuth2。
那么,更好的方法是什么?
还,
- 将 QSettings 直接暴露给 QML UI 是个好主意吗?
- 我个人更喜欢 qmlRegisterType() 到 setContextProperty() - 这样,注册类实例的生命周期仅由 QML 维护。但是,由于缺乏对参数化构造函数的支持,前者不太可能使用,除非
显式使用某种形式的 init() 进行初始化。这是一个好的设计吗?
我提前为一篇冗长的帖子道歉。但我认为最好在这里问。
qt - 使用 QSettings 保存 64 位整数
有没有什么巧妙的方法,除了将数字转换为QByteArray
,来保存quint64
吗QSettings
?问题是QVariant
不接受qint64
也不quint64
。
c++ - Qt 控制台应用程序中配置的标准方法是什么?
在 .Net 中,您通常有一个 app.config 文件并内置了访问配置的方法。
是否有使用 Qt 进行配置的等效标准方法?
例如,假设我的应用程序连接到在线服务器,我希望能够存储连接详细信息(用户定义)。
这是“自己动手”的情况,还是有办法使用 XML 或 Qt 提供的任何其他具有简单读/写方法的格式来存储和读取这些配置?
编辑:为问题添加一些复杂性。这是一个 Linux 控制台应用程序,因此请专门寻找基于文件和透明的配置。