我希望这不是一个愚蠢的问题,但我在模板方面缺乏经验,而这个问题在我脑海中浮现。我正在开发一个严重依赖于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中找到了大量的代码模板结果,但没有关于通用编程概念的结果。我真的很感激任何暗示&amp;&amp; ||有用的资料/文章。谢谢你的时间!
编辑:第一个代码中的愚蠢错字= /
答案 0 :(得分:5)
我已经证实这是不可能的。 资料来源:Limitations mof the moc concept
要点是,mocs是经过预处理的,但模板只在编译时转换为实际代码。
编辑:我可以补充一点,而不是让类本身模板化,我现在只模仿公共函数,到目前为止工作得很好,尽管它当然需要消费者每次调用函数时输出声明