代码之家  ›  专栏  ›  技术社区  ›  Moia

qt creator包含保护模式

  •  2
  • Moia  · 技术社区  · 8 年前

    有条路进去 Qt创建者 在创建新类时自动添加模板字符串?

    例如:

    我创造了新的 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

    2 回复  |  直到 8 年前
        1
  •  1
  •   JulesW    7 年前

    我实现了生成窗体namespace_nestednamespace_classname_h的头保护。我找不到任何东西来获取项目名称,但在我的情况下,这不是问题,因为我的顶级命名空间是我的项目名称。

    根据@alan birtles的回答,我修改了cpp类向导。你需要复制文件( file.cpp , file.h , wizard.json )从qtcreator安装目录到主目录( $HOME/.config/QtProject/qtcreator/templates/wizards 在Linux和MacOS或 %APPDATA%\QtProject\qtcreator\templates\wizards 在窗户上,根据 doc )将它们放在相同的子文件夹中(即 wizards/classes/cpp )

    在 向导.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

    希望这有帮助!


    我用了以下资源,以防有用:

        2
  •  0
  •   Alan Birtles    8 年前

    可以在中编辑模板 share/qtcreator/templates/wizards/classes/cpp

    在Mac上,路径是 qt creator.app/Contents/Resources/templates/wizards/classes/cpp .

    推荐文章