但是 你里面还是传了 FILE "myplugin.json" 的参数
时间: 2023-12-10 08:02:39 浏览: 63
您是正确的,即使使用字符串格式的元数据信息,仍然需要在 Q_PLUGIN_METADATA 宏中传递一个 JSON 文件的文件名,以便在运行时加载插件时能够正确地读取元数据信息。
实际上,Q_PLUGIN_METADATA 宏中的 FILE 参数不仅仅用于指定 JSON 文件的文件名,还可以用于指定其他类型的文件,例如图标文件等。如果您不想使用 JSON 文件来存储元数据信息,也可以使用其他格式的文件,只需在 Q_PLUGIN_METADATA 宏中传递相应的文件名即可。
因此,如果您想使用字符串格式的元数据信息,可以按照以下方式来编写 Q_PLUGIN_METADATA 宏:
```c++
#define MyPlugin_iid "com.example.MyPlugin"
#define MyPlugin_metadata \
"IID: " MyPlugin_iid "\n" \
"version: 1.0\n" \
"vendor: Example Inc.\n"
class MyPlugin : public QObject, public MyInterface
{
Q_OBJECT
Q_PLUGIN_METADATA(IID MyPlugin_iid)
// 或者使用字符串格式的元数据信息,并指定一个空的 JSON 文件名
// Q_PLUGIN_METADATA(IID MyPlugin_iid FILE "")
// 或者使用字符串格式的元数据信息,并指定其他类型的文件名
// Q_PLUGIN_METADATA(IID MyPlugin_iid FILE "myplugin.png")
...
};
```
如上所示,如果您不想使用 JSON 文件来存储元数据信息,可以将 FILE 参数设置为空字符串,或者设置为其他类型的文件名(例如 myplugin.png)。
阅读全文