如何doxygen评论Qt属性?

时间:2011-02-06 15:15:20

标签: c++ qt doxygen

我想将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类似的输出。

3 个答案:

答案 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:”的段落,后跟引用的方法。

以下是文档中的内容:

enter image description here


提示:如果属性的名称与读取属性的方法相同,您可能希望在文档中的访问者名称前面加上“%”(否则访问者将显示为指向自身的链接:

/**
 * ...
 * @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配置中使用一些宏/别名。