gpt4 book ai didi

c++ - 我什么时候应该在 Qt 上使用 qApp->setProperty

转载 作者:行者123 更新时间:2023-11-27 23:53:36 27 4
gpt4 key购买 nike

我没有在 Qt 文档中找到解释 qApp->setProperty() 选项的部分(它可能在那里,但我不能'找不到它)。有人可以基本上向我解释它是如何工作的以及我应该在什么时候使用它吗?

我问它是因为我需要将我的数据库文件的路径定义为“全局常量”,以便在许多类中使用,所以我想使用 setProperty 来设置它功能。

例如:

qApp->setProperty("DATABASE_PATH", "C:/../Database.db");

然后,使用以下方式访问它:

qApp->property("DATABASE_PATH").toString();

我可以这样做吗,或者有更好/正确的方法吗?

最佳答案

此功能未显示在QApplication documentation 的主视图中.

在此页面上有一个名为:List of all members, including inherited members 的部分,在它们中你会发现你拥有的所有属性,要么是独占的,要么是你的父类。

寻找这个函数建立在QObject中:

bool QObject::setProperty(const char *name, const QVariant &value)

Sets the value of the object's name property to value.

If the property is defined in the class using Q_PROPERTY then true is returned on success and false otherwise. If the property is not defined using Q_PROPERTY, and therefore not listed in the meta-object, it is added as a dynamic property and false is returned.

Information about all available properties is provided through the metaObject() and dynamicPropertyNames().

Dynamic properties can be queried again using property() and can be removed by setting the property value to an invalid QVariant. Changing the value of a dynamic property causes a QDynamicPropertyChangeEvent to be sent to the object.

Note: Dynamic properties starting with "q" are reserved for internal purposes.

See also property(), metaObject(), dynamicPropertyNames(), and QMetaProperty::write().

setProperty 用于通过其名称公开属性,如果您可以在您的情况下使用它,因为 qApp 是一个可以被整个程序访问的指针.

关于c++ - 我什么时候应该在 Qt 上使用 qApp->setProperty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44292561/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com