我有一个使用Qt库编写的C++图形用户界面(GUI)。在我的应用程序中,我使用了一个TreeView对象。为了使该对象易于重用,我创建了一个模板类,可以让我的QObjects继承它。由于moc无法处理模板化的类,所以我将类设计成如下形式:
class Tree : public QObject, public TreeTemplate<TreeType, TreeItemType>
{
Q_OBJECT
};
这样可以使只有Tree类使用moc(TreeTemplate不继承QObject或使用Q_OBJECT宏), 同时获得模板的好处。
我的问题是,当退出应用程序时,它总是崩溃(即时我调用exit并跳过QApplication清理)。我认为生成的moc类中存在“静态元对象”的问题。
由于使用了无法处理的__ASM__,所以我无法使用valgrind。 :-(
有没有人知道我的设计中使用继承自一个模板类的模板化Qt类(+moc)会导致这个问题?
崩溃在: libc.so之后。