neu*_*rte 11 c++ qt templates qobject
在我的应用程序中,我有以下类层次结构:
class Word
{
...
}
template <typename T> class Dictionary
{
...
};
class WordDictionary : public Dictionary<Word>
{
Q_OBJECT
...
}
Run Code Online (Sandbox Code Playgroud)
WordDictionary类解析需要很长时间的字典.我正在一个单独的线程中运行解析函数,我希望它能够不时地通知GUI线程,以根据正在解析的当前行号提供进度更新.这就是我希望它成为Q_OBJECT的原因.我试图使基类Dictionary成为Q_OBJECT,但得到的消息是不支持Q_OBJECT模板.当我删除宏,只留下WordDictionary作为Q_OBJECT时,我得到一堆一般形式的错误消息:
\ GeneratedFiles \发布\ moc_dictionary.cpp(44):错误C2039: 'staticMetaObject':不是'词典'中的一员
与
[
T =字
]
有什么办法可以让我的模板派生的WordDictionary类成为Q_OBJECT而不是硬编码里面的模板函数,产生了很多样板代码吗?
编辑:将模板声明更改为:
template <typename T> class Dictionary : public QObject
Run Code Online (Sandbox Code Playgroud)
使代码编译.我不确定我是不是做了一些愚蠢的事情,如果能够正常工作的话.
| 归档时间: |
|
| 查看次数: |
9512 次 |
| 最近记录: |