前提

安装Visual Studio

安装(必需)

qt-opensource-windows-x86-5.12.8.exe。
双击文件安装,安装时断开网络,否则需要注册账号,安装时按照下图进行勾选
Snipaste_2020-06-17_14-41-54.png
安装Qt时会带一个Qt Creator。我们一般还会单独安装一个新的Qt Creator(如上Qt安装包的同一目录下,qt-creator-opensource-windows-x86_64-x.x.x.exe)。

构建工具(Kits)设置(必需)

注意要选择MSVC2017,其他主要是红色箭头标记的位置。从旧版本升级后,很可能出错,需再次检查下。
image2020-6-3 11_36_51.png
如果出现无法检测到调试器(即只显示none)的情况,则需要进入windows的应用与功能将Windows Software Development Kits删除掉然后重新使用
\192.168.3.223\sharedrepo\1.Software\开发环境\SDKSETUP.exe重新安装。记得勾选上所有安装内容。
如果通过上述操作仍然无法检测调试器,就需要手动配置,点击“Manage”选择cdb.exe所在路径。
如果出现编译器无法识别的情况,可能是由于没有安装visual studio造成的,安装后重启软件即可检测到编译器。
如果出现“调试器:”那一行完全消失的情况,“帮助”-》“关于插件”,在“Filter”栏中输入“debug”,选中即可。
如果出现”Qt version”那一行为None的情况,切换到Kits>Qt Versions,点击Link with Qt…, 然后正确配置好Qt的安装路径(如C:\Qt\Qt5.12.8),点击OK即可自动检测到Qt。

创建类的文件名(必需)

《工具》《选项》《C++》《文件命名》,取消选中《Lower case file names》

语法高亮颜色(黑色主题,强烈建议)

将文件dark_copy.xml放于 C:\Users\user_name\AppData\Roaming\QtProject\qtcreator\styles 中,路径改为本机用户名dark_copy.xml

  1. 《工具》《选项》《环境》《Interface》中Theme改为Dark,点击《OK》,重启Creator
  2. 《工具》《选项》《文本编辑器》《字体和颜色》,Color Theme选择Dark (LiXi)

    代码格式化(必需)

    改进可读性、及时发现部分错误、减少冲突的可能性。

  3. 安装共享文件夹1.Software\工具软件\LLVM-x.x.x-win64.exe

  4. 《帮助》《关于插件》,Filter里输入bea,选中Beautifier,点击《OK》,重启Creator
  5. 《工具》《选项》《Beautifier》《Clang Format》
    《Clang Format Command》若没有正确发现,选择clang-format.exe的路径,如C:\Program Files\LLVM\bin\clang-format.exe
    选择《Use customized style》,点击《Add》,输入下述配置(参见

    BasedOnStyle: Google IndentWidth: 4

    Language: Cpp AccessModifierOffset: -4

AllowShortIfStatementsOnASingleLine: false

AllowShortLoopsOnASingleLine: false

BreakBeforeBraces: Custom

BraceWrapping:

AfterFunction: true

AfterCaseLabel: true

AfterClass: true

AfterStruct: true

ConstructorInitializerAllOnOneLineOrOnePerLine: false

ColumnLimit: 100

DerivePointerAlignment: false

IndentCaseLabels: false

SortIncludes: false

SpacesBeforeTrailingComments: 1

Standard: Cpp11

  1. 《工具》《选项》《环境》《键盘》,Filter里输入form,选择Clang Format下的FormatAtCursor,点击《Record》,按下Alt+Shift+F,点击《OK》
  2. 对于不应该格式化的罕见情况,可指定: | // clang-format off
    // special codes shouldn't be formatted
    // clang-format on | | :—- |


之后就可以通过Alt+Shift+F来格式化选中的代码
不编辑外部来源的代码(如Property库)时,打开“自动格式化”
qt_creator_format_on_save.png

默认build文件夹(必需)

《工具》《选项》《构建和运行》,打开《概要》标签页,修改《Default build directory》为

D:/projects_build/%{CurrentProject:Name}_build

文档工具Doxygen(可选)

安装

  1. 下载插件,放入C:\Qt\qtcreator-x.x.x\lib\qtcreator\plugins(正在使用的版本)。插件项目地址:https://github.com/fpoussin/qtcreator-doxygen/releases
  2. 打开Qt Creator,《帮助》《关于插件》,Filter里输入doxy,选中Doxygen,重启Creator
  3. 共享文件夹3rd parties中:复制doxygen.exe到C:\Program Files\doxygen\bin\;解压graphviz-2.38.zip到本地,把其bin目录加到PATH中。(按理说修改Doxyfile中的DOT_PATH即可,但实际不行)
  4. 《工具》《选项》《Doxygen》,Doxygen command填入C:\Program Files\doxygen\bin\doxygen.exe

    使用

  5. 配置:参考Mech_Vision项目路径下的Doxyfile文件,其修改了下述参数

    CREATE_SUBDIRS = YES

BUILTIN_STL_SUPPORT = YES

HAVE_DOT = YES

DOT_IMAGE_FORMAT = svg

INTERACTIVE_SVG = YES

FILE_PATTERNS = .cpp .h

RECURSIVE = YES

INPUT = Vision

  1. 《工具》《Doxygen》,点击Build Doxygen Documentation,即可根据代码的注释生成文档

    把Qt加入到系统PATH(必需)

    左下角Cortana那里,输入path,回车。
    在环境变量的PATH里加入:C:\Qt\Qt5.12.8\5.12.8\msvc2017_64\bin,如升级自旧的Qt,则用此行取代旧的路径
    注意PATH里不要出现用到Qt库的软件路径,否则很可能运行时使用错误的Qt版本。如果发现Qt版本不对,cmd里输入where Qt5Core.dll,看其是否错误。

    使用#pragma once、类文件名不自动小写(必需)

    qt_creator_cpp_file_naming.png

    设置Qt代码路径(建议)

    在Debug时,可跳转到对应的Qt源码。
    qt_creator_set_qt_src.png

    开关插件(建议)

    Qt Creator默认打开的插件中,很多我们目前用不上,应该关闭。如下图,折叠表示全部开启或全部关闭。
    Qt设置1.png

    运行Path配置(建议)

    qt_creator_run_config.png

    Refactoring

    http://doc.qt.io/qtcreator/creator-editor-refactoring.html

Clang Code Model

选项 → C++ → Code Model → Diagnostic Configuration。创建mmind条目(选择一个条目如“Build-system warnings”,点“Copy…”,命名为mmind),填入:
-Wall -Wextra -Wno-c++98-compat -Wno-global-constructors -Wno-exit-time-destructors -Wno-shadow-field-in-constructor -Wno-double-promotion -Wno-sign-compare -Wno-sign-conversion -Wno-c++98-compat-pedantic
点Ok,外面选择mmind。

Clang-Tidy and Clazy

需更新到Qt Creator 4.13.0或以上。否则由于内嵌Clang版本过低(MSVC需Clang≥9.0,之前是8.0),无法使用。
选项 → 分析器 → Clang Tools → Diagnostic Configuration。创建mmind条目(同上)。
如下。随着Qt Creator版本不同,标签页的名称可能不同,请自行对应。
image.png
Clang Warnings,同上(Clang Code Model的)。
Clang-Tidy Checkes,点“Edit Checks as String…”,填入:

-,bugprone-assert-side-effect,bugprone-branch-clone,bugprone-copy-constructor-init,bugprone-fold-init-type,bugprone-forwarding-reference-overload,bugprone-inaccurate-erase,bugprone-infinite-loop,bugprone-integer-division,bugprone-lambda-function-name,bugprone-misplaced-widening-cast,bugprone-move-forwarding-reference,bugprone-parent-virtual-call,bugprone-signed-char-misuse,bugprone-sizeof-,bugprone-string-integer-assignment,bugprone-suspicious-enum-usage,bugprone-suspicious-memset-usage,bugprone-swapped-arguments,bugprone-throw-keyword-missing,bugprone-too-small-loop-variable,bugprone-undefined-memory-manipulation,bugprone-undelegated-constructor,bugprone-unhandled-self-assignment,bugprone-unused-,bugprone-use-after-move,bugprone-virtual-near-miss,cppcoreguidelines-init-variables,cppcoreguidelines-macro-usage,cppcoreguidelines-pro-type-cstyle-cast,cppcoreguidelines-pro-type-member-init,cppcoreguidelines-slicing,misc-definitions-in-headers,misc-redundant-expression,misc-throw-by-value-catch-by-reference,misc-unconventional-assign-operator,modernize-deprecated-headers,modernize-loop-convert,modernize-make-,modernize-return-braced-init-list,modernize-use-auto,modernize-use-bool-literals,modernize-use-default-member-init,modernize-use-emplace,modernize-use-equals-,modernize-use-nullptr,modernize-use-override,modernize-use-transparent-functors,performance-faster-string-find,performance-for-range-copy,performance-implicit-conversion-in-loop,performance-inefficient-,performance-move-,performance-noexcept-move-constructor,performance-trivially-destructible,performance-type-promotion-in-math-fn,performance-unnecessary-,readability-const-return-type,readability-container-size-empty,readability-convert-member-functions-to-static,readability-delete-null-pointer,readability-deleted-default,readability-else-after-return,readability-inconsistent-declaration-parameter-name,readability-isolate-declaration,readability-make-member-function-const,readability-misleading-indentation,readability-non-const-parameter,readability-redundant-control-flow,readability-redundant-declaration,readability-redundant-member-init,readability-redundant-smartptr-get,readability-redundant-string-,readability-simplify-boolean-expr,readability-static-

Clazy Checkes(随着Qt Creator版本不同,有些条目可能不存在):

  1. 全选Level 1,然后取消勾选:
    1. non-pod-global-static
    2. qproperty-without-notify
  2. Level 0已经默认全选(由于全选Level 1),取消勾选:
    1. connect-by-name
    2. fully-qualified-moc-types
  3. Level 2,勾选:
    1. base-class-event
    2. function-args-by-ref
    3. global-const-char-pointer
    4. old-style-connect
    5. qstring-allocations
    6. virtual-call-ctor
  4. Manual Level,勾选:
    1. container-inside-loop
    2. detaching-member
    3. inefficient-qlist

      分析检查代码

      尽量在Debug模式下分析(Release下Qt Creator也会提示尽量切换到Debug)。
      Analyze → Clang-Tidy and Clazy…,然后选择要检查的文件并分析。默认分析前会先构建(预期的行为),所以有可能时间较长。

      Cppcheck

      为什么有了clang还需要安装此工具:
      目前不清楚为什么clang配置的一些检查没有生效(如implicit fall through, unused variable) 。

      安装操作如下:
      安装\192.168.10.223\sharedrepo\1.Software\工具软件\cppcheck-2.4-x64-Setup.msi,使用默认路径。
      在Qt Creator里:
      1. 《帮助》-《关于插件》,在过滤器中填写Cppcheck,勾选此插件,并重启Qt Creator。
      2. 确认《工具》-《选项》-《分析器》- CppCheck - Binary选项中确认cppcheck.exe的路径有效(其值与安装的exe路径是一致的)
      即可对代码进行静态分析。