在教程QTestLib,也有提到的文件"testgui.交通部"和"testqstring.交通部"(一个例子可以在这里找到: 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_meta_stringdata_TestQString变量的类参与方法的名称所附的东西--这可能是做过什么线 METHOD(toUpper()), 但我不确定是否以及如何此相关的任何其他结果的格式。

我想知道,在一般情况下,怎么回事。该评论提供的顶部文件说,它已与"元的目标代码",那么多的似乎是显而易见的基础上的方法,它后来复盖。

然而,更重要的是,我想知道我怎么可以修改,qt_meta_data阵列,以便它将允许我呼吁更多的功能和/或允许我重新名称的功能上的姓名的不同长度(交换方法名称从大写到toApple似乎引起任何问题,但是改变他们toUppercase或toUp两个原因测试应用程序未能按预期运行).

***************************** 更新********************************

已经有一个接受的答案,但我认为我应该添加这样的:唯一的原因,这些文件是在教程在所有的是因为教程提交人决定不具备的。h。cpp文件为他们的课程。他们是否则无用的。

有帮助吗?

解决方案

你的代码的发布所产生的夸脱的 元对象compiler(商务部) 从你的头文件。你不应该写/更改的文件中自己。只是写您的类的头和运行 moc 上(它们通常是处理建立系统的使用, qmake 将通过默认)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top