在 Qt-Creator 中有一种方法可以在创建新类时自动添加模板字符串吗?
例如:
我创建了新的class Foo
。自动生成的头文件是
#ifndef FOO_H
#define FOO_H
class Foo{
};
#endif FOO_H
我会:
#ifndef SOMETHING_FOO_H
#define SOMETHING_FOO_H
class Foo{
};
#endif SOMETHING_FOO_H
理想情况下,我希望 根据项目 (例如PROJECTNAME_FOO_H
或更好PROJECT_NAMESPACE_FOO_H
答案 0 :(得分:1)
您可以在share/qtcreator/templates/wizards/classes/cpp
。
在Mac上,路径为qt creator.app/Contents/Resources/templates/wizards/classes/cpp
。
答案 1 :(得分:0)
我实现了以NAMESPACE_NESTEDNAMESPACE_CLASSNAME_H格式生成标头后卫。我找不到任何可以获取项目名称的东西,但是对我来说这不是问题,因为我的顶级名称空间是我的项目名称。
在回答@Alan Birtles之后,我修改了cpp类向导。您需要将文件(file.cpp
,file.h
,wizard.json
)从QtCreator安装目录复制到您的主目录(Linux和macOS上的$HOME/.config/QtProject/qtcreator/templates/wizards
或%APPDATA%\QtProject\qtcreator\templates\wizards
在Windows上,请按doc)。将它们放在相同的子文件夹中(即wizards/classes/cpp
)。
在wizard.json
中,更改以下行:
{ "key": "GUARD", "value": "%{JS: Cpp.headerGuard('%{HdrFileName}')}" },
收件人:
{ "key": "GUARD", "value": "%{JS: Cpp.classToHeaderGuard('%{Class}', '%{JS: Util.suffix('%{HdrFileName}')}')}" },
请注意,您可以根据自己的喜好添加一些静态文本:
{ "key": "GUARD", "value": "RANDOM_TEXT_%{JS: Cpp.classToHeaderGuard('%{Class}', '%{JS: Util.suffix('%{HdrFileName}')}')}_INCLUDED" },
完整的文件可以在这里找到: https://gist.github.com/juleswh/aeacc89342bc51b19044cf1e04483357
希望这会有所帮助!
在可能有用的情况下,我使用了以下资源: