我想将Doxygen评论附加到我的Q_PROPERTYs。
例如:
song.h
class Song : public QObject
{
Q_OBJECT
private:
Q_PROPERTY(QString title READ title WRITE setTitle);
QString _title;
public:
QString title() const;
void setTitle(const QString& value);
};
song.cpp
#include "song.h"
Song::Song(QObject *parent) :
QObject(parent)
{
}
QString Song::title() const { return _title; }
void Song::setTitle(const QString &value) { _title = value; }
如何告诉Doxygen标题是Qt元对象系统中的属性,title()和setTitle()是存取函数?我希望获得与this类似的输出。
答案 0 :(得分:13)
doxygen支持开箱即用的Qt属性。只需在属性声明上方添加文档注释,您就会在doxygen输出中看到“属性”。
请注意,如果访问者功能也有文档注释,则会单独记录访问者功能。因此,如果要在生成的文档中取消这些注释,则需要从这些访问器函数中删除文档注释。
答案 1 :(得分:13)
我终于找到了办法。
在源文件中:
/**
* @brief The name of the user.
* @accessors name(), setName()
*/
Q_PROPERTY(QString name READ name WRITE setName)
在Doxyfile
:
ALIASES = "accessors=\par Accessors:\n"
我所做的是定义名为“accessors”的an alias,它将生成一个标题为“Accessors:”的段落,后跟引用的方法。
以下是文档中的内容:
提示:如果属性的名称与读取属性的方法相同,您可能希望在文档中的访问者名称前面加上“%
”(否则访问者将显示为指向自身的链接:
/**
* ...
* @accessors %name(), setName()
* ...
*/
答案 2 :(得分:2)
objectName属性的qobject.cpp中的doxygen注释以“\ property”标记开头:
/*!
\property QObject::objectName
\brief the name of this object
You can find an object by name (and type) using findChild(). You can
find a set of objects with findChildren().
\snippet doc/src/snippets/code/src_corelib_kernel_qobject.cpp 5
By default, this property contains an empty string.
\sa metaObject(), QMetaObject::className()
*/
你尝试过使用它吗?如果它没有开箱即用,我会试着找出Qt如何生成它的文档 - 也许你需要在doxygen配置中使用一些宏/别名。