指定Doxygen自动生成类的标题

4
有没有办法指定由doxygen自动生成的类页面的标题?这样,页面顶部就可以使用自己的文本,而不是“ClassName Class Reference”。
或者,如果不能使用自己的文本,我只想显示“ClassName”(不带“Class Reference”)。
下面的截图在绿色框中显示了我想要消除的文本...因此,在此页面上,我希望标题仅为“WindSpeedSetting”。更理想的是,我希望标题为“WindSpeedSetting表”。
以下是我的doxy文件摘录:
<navindex>
  <tab type="mainpage" visible="yes" title=""/>
  <tab type="classes" visible="no" title="">
    <tab type="classlist" visible="no" title="" intro=""/>
    <tab type="classindex" visible="no" title=""/>
    <tab type="hierarchy" visible="no" title=""/>
    <tab type="classmembers" visible="no" title=""/>
  </tab>
  <tab type="usergroup" url="[none]" visible="yes" title="Tables">
    <tab type="usergroup" url="[none]" visible="yes" title="SCADA">
      ...
      <tab type="user" title="WindSpeedSetting" url="@ref Radiance::Model::Scada::v12::WindSpeedSetting" />
    </tab>
    ...
  </tab>
</navindex>

<class>
  <briefdescription visible="no"/>
  <detaileddescription title="Description"/>
  <memberdef>
    <inlineclasses title=""/>
    <typedefs title=""/>
    <enums title=""/>
    <constructors title=""/>
    <functions title="" visible="no"/>
    <related title=""/>
    <variables title=""/>
    <properties title="Columns"/>
    <events title=""/>
  </memberdef>
  <allmemberslink visible="no"/>
  <usedfiles visible="no"/>
  <authorsection visible="no"/>
</class>

然后我的C#类看起来像这样:

/// <summary>
/// \class WindSpeedSetting
/// A list of available anemometers in the system.
/// </summary>
public class WindSpeedSetting
{
  /// <summary>
  /// \property AlarmSpeed
  /// \a float <br /><br />
  /// </summary>
  public virtual double AlarmSpeed { get; set; }

  /// <summary>
  /// \property AlarmTime
  /// \a bigint <br /><br />
  /// </summary>
  public virtual TimeSpan AlarmTime { get; set; }
}

1
+1。我们正好遇到了同样的问题。这一直困扰着我们。 - Stephen Quan
3个回答

1
如果您没有DoxygenLayout.xml文件,您可以按照doxygen手册中更改页面布局所描述的步骤创建一个。在文件顶部,您会发现包含classes选项卡的<navindex>标签。
<navindex>
...
<tab type="classes" visible="yes" title="">
  <tab type="classes" visible="no" title="THISISANEXAMPLE"/>
  <tab type="classindex" visible="$ALPHABETICAL_INDEX" title="THISISMYTITLE"/> 
  <tab type="hierarchy" visible="yes" title=""/>
  <tab type="classmembers" visible="yes" title=""/>
</tab>
...

关注title="THISISANEXAMPLE"visible="no"`,改变可见性和/或标题,完成。


1
这对我不起作用。我猜我试图更改<class>标签内的某些内容? - skye
你是否已经获取了DoxygenLayout.xml文件并且能够看到<navindex>,如果是的话,如果你想要去掉“Class Reference”,可以设置<tab type="classes" visible="yes" title="THISISANEXAMPLE"/>,然后将classindex hierarchy classmembers visible="no"。这应该可以解决问题。试着玩一下,如果还不行,也许你可以发布一些你的代码。没有确切的参数和屏幕截图等,很难确定问题所在。 - aldr

0
我从 GitHub 上获取了 Doxygen 的源代码,并追踪了“Class Reference”字符串,发现它是在 translate_en.h 的第 585 行定义的一个例行程序。
/*! used as the title of the HTML page of a class/struct/union */
virtual QCString trCompoundReference(const char *clName,
                                ClassDef::CompoundType compType,
                                bool isTemplate)
{
  QCString result=(QCString)clName;
  switch(compType)
  {
    case ClassDef::Class:      result+=" Class"; break;
    case ClassDef::Struct:     result+=" Struct"; break;
    case ClassDef::Union:      result+=" Union"; break;
    case ClassDef::Interface:  result+=" Interface"; break;
    case ClassDef::Protocol:   result+=" Protocol"; break;
    case ClassDef::Category:   result+=" Category"; break;
    case ClassDef::Exception:  result+=" Exception"; break;
    default: break;
  }
  if (isTemplate) result+=" Template";
  result+=" Reference";
  return result;
}

这意味着让 "Class Reference" 文本消失的唯一方法是更改语言,这将仅用外语等效物替换 "Class Reference" 或修补代码。

0
显示类名时,可以检查标签HIDE_COMPOUND_REFERENCE以去除其后的“Class Reference”字符串。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接