4

我希望这不是一个愚蠢的问题,但是我对模板非常缺乏经验,这个问题超出了我的想象。我在一个严重依赖 QT Designer 的 GUI 设计项目上工作,我想提供一个特殊的 QWidget 子类,它允许抽象与复杂服务机制的交互。此小部件需要特定于类的信息,以解析服务。编码本身是在 Visual Studio 2008 中完成的。

所以我想要创建的是一个模板化的 QWidget 子类。以我有限的知识,我尝试在课堂前拍下通常的模板语句:

template <class T>
class QmitkMyWidget :public QWidget

不出所料,这并不容易。生成的 moc 类起作用。

error PRJ0019: A tool returned an error code from "Generating Qmitk/moc_QmitkMyWidget.cxx"

这对我来说似乎是合乎逻辑的,因为我“没有告诉他们该做什么”。我想我必须在 QT Designer 中指定模板,但我真的不知道如何,不幸的是,搜索在 QT Designer 中找到了大量代码模板的结果,但没有关于通用编程概念。我真的很感激任何提示 && || 有用的资源/文章。谢谢你的时间!

编辑:第一个代码中的愚蠢错字=/

4

1 回答 1

6

我已经确认这是不可能的。资料来源:moc 概念的局限性

要点是,mocs 是经过预处理的,但模板仅在编译时翻译成实际代码。

编辑:我可以补充一点,而不是使类本身模板化,我现在只模板化公共函数,到目前为止效果很好,尽管它当然需要消费者在每次调用函数时输入声明。

于 2012-07-19T14:17:42.553 回答