在qtestlib的教程中,有对文件“testgui.moc”和“testqstring.moc”的引用(这里有一个示例:
http://www.englishbreakfastnetwork.org/coverage/build/qt-copy/examples/qtestlib/tutorial3/.moc/debug-shared/testgui.moc
)。其中包括配置测试所需的几条信息。不幸的是,这些教程没有解释这些信息是什么,也没有解释如何更改这些信息。具体来说,我指的是以下几行:
static const uint qt_meta_data_TestQString[] = {
// content:
2, // revision
0, // classname
0, 0, // classinfo
2, 12, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
// slots: signature, parameters, type, tag, flags
13, 12, 12, 12, 0x08,
28, 12, 12, 12, 0x08,
0 // eod
};
static const char qt_meta_stringdata_TestQString[] = {
"TestQString\0\0toUpper_data()\0toUpper()\0"
};
现在,根据我对qt的理解,qt-meta-stringdata-testqstring变量是带有附加方法名称的类引用——这可以通过一行代码来实现。
METHOD(toUpper())
,但我不确定这是否以及如何与结果格式之外的任何内容相关。
总的来说,我想知道发生了什么。在文件顶部提供的注释表示,它与“元对象代码”有关,而且根据它稍后重写的方法,这一点似乎很明显。
但是,更重要的是,我想知道如何修改qt_meta_数据数组,以便它允许我调用更多的函数和/或允许我将上面的函数重新命名为不同长度的名称(将方法名称从toupper切换到toaple似乎不会造成任何问题,但将它们更改为touppercase或toup都会导致测试应用程序无法按预期运行)。
**************************更新**********
下面已经有一个可接受的答案,但我认为我应该补充一下:这些文件之所以出现在教程中,唯一的原因是教程作者决定不为他们的类提供.h和.cpp文件。否则它们是无用的。