VAssistX 显示Qt 枚举

在qt4.6.3 版本中, qnamespace.h 存放了qt4 很多重要的枚举和枚举变量, 如Key, Key_Escape, Key_Enter, FramelessWindowHint 等.

本人的IDE是vs2005, qt版本是4.6.3,系统是xp sp3, vassistx 版本是10.6.1833(算最新的了).

本人在编程中发现, Qt 是一个命名空间, 但是 Qt::  后面的智能提示不准确, 如Key_Escape 没有被识别出来.

#ifndef Q_MOC_RUN
namespace
#else
class Q_CORE_EXPORT
#endif

Qt {

.....

}

我看了一个以前版本(不知道什么版本, 见谅)的 qnamespace.h, 里面的Qt 是一个类,

class Q_EXPORT Qt {.......}

所以你很多时候直接写 Key_Escape, FramelessWindowHint 是没有问题的, 但是现在的Qt 不是一个类了, 它是一个命名空间, 并且VAssistX 也把Qt 识别为命名空间. 除非你用了 using namespace Qt;  不然原来的代码Key_Escape 就必须改为 Qt::Key_Escape, 但是VAssistX 不能正确识别, 手动打这些枚举名难免会犯错误的.

还好, Qt:: 不能正确识别, 但是 Qt-> 却能正确识别, 如果你的 VAssistX 选项的"Convert dot to ->(in C/C++)"被勾选, 你还可以用 Qt. 来识别 Key_Escape.

现在你可以打Qt.Key_Escape, 然后再把它改为 Qt::Key_Escape, 实属无奈之举!!!!!!!!!!

至于为什么这样, 本人也想知道!

 

 

 

 

 

 

你可能感兴趣的:(VAssistX 显示Qt 枚举)