创建Qt创建时,需要特别注意命名空间。比如有虚接口:
注意到Q_DECLARE_INTERFACE(sic::Font, "ict.imap.sic.Font/1.0")不能在命名空间中,因此类必须包含有命名空间,即为sic::Font。
实现的头文件为:
特别注意:Q_INTERFACES(sic::Font),必须是sic::Font,否则无法通过编译。但是如果写QINTERFACES(Font)又能通过编译,比较奇怪,具体的宏定义暂时没有深究,但是确实令人很不直观。
最后在.cpp文件中加上Q_EXPORT_PLUGIN2宏定义即可。