最近我已经更新到Qt 5.11.2。作为版本的一部分,安装了Qt Creator 4.7.1。
它带有实时代码检查功能,我认为它没有用,而是通过取消选中帮助->插件下的 ClangCodeModel 来将其删除。这是我对Qt Creator所做的唯一定制。
使用此版本的Qt Creator,我遇到以下问题:
将静态转换指针分配给声明为auto的变量时,自动代码完成功能无法识别它,因此我必须手动键入代码。手动键入的代码也没有突出显示语法:
该图片仅用于显示语法突出显示。代码与提供的示例中的代码相同。
注意:当手动键入代码时,项目编译不会出现错误/警告。
这与我以前使用的Qt Creator的预期版本一样。
请考虑以下我为重现该问题而编写的最小示例:
main.cpp
class A {
public:
A::A() {
}
};
class B : public A {
public:
void foo() {
}
};
int main(int /*argc*/, char * /*argv[]*/)
{
A *a = new B();
auto *b = static_cast<B *>(a);
static_cast<B *>(a)->foo(); // "->foo();" is autocompleted
b->foo(); // Need to type "->foo();" manually
return 0;
}
如何使自动完成器/语法荧光笔工作?
答案 0 :(得分:0)
为了使代码识别和完成正常工作,基于Qt 5.11.2的Qt Creator 4.7.1需要Clang代码模型:
帮助-> 已安装的插件-> ClangCodeModel
但是,这会打开行注释。如果不希望这样做,可以通过转到
来将其关闭工具-> 选项-> 文本编辑器-> 显示
,然后取消选中行注释。