从QWidget继承并使类成为模板

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中的代码模板,而没有关于通用编程概念的结果。非常感谢任何提示和有帮助的来源/文章。谢谢你抽出时间!

编辑:第一行代码中有一个愚蠢的拼写错误 = /

1个回答

6
我已确认这是不可能的。 来源: MOC概念的限制 简而言之,moc是预处理的,但模板只能在编译时被翻译成实际代码。
编辑:我可以补充说,现在我仅将公共函数变为模板形式,这个方法到目前为止运行得很好,但当然需要消费者每次调用函数时手动输入声明。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接