1. 出現 errorString : failed to extract plugin meta data from此問題
原因1: 介面實作類沒有Q_OBJECT
原因2: 進行了Q_PLUGIN_METADATA的宣告,但是json檔案格式錯誤
2. 出現PluginLoader returns a QObject instance, but qobject_cast returns null (0x0)此問題
原因1: 介面檔案不統一 Q_DECLARE_INTERFACE的id不一樣
介面檔案:
#ifndef APPINTERFACE_H
#define APPINTERFACE_H
#include <QtPlugin>
QT_BEGIN_NAMESPACE
class QWidget;
class QString;
class QObject;
QT_END_NAMESPACE
class AppInterface
{
public:
virtual ~AppInterface(){}
virtual QWidget *CreateWidget(QWidget *parent = nullptr)=0;
virtual QString name() = 0;
};
Q_DECLARE_INTERFACE(AppInterface, "id1233");
#endif // APPINTERFACE_H
插件實作類檔案:
#ifndef MYPLUGIN_H
#define MYPLUGIN_H
#include <QObject>
#include "appinterface.h"
class MyPlugin : public QObject, public AppInterface
{
Q_OBJECT
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QGenericPluginFactoryInterface" FILE "plugin.json")
Q_INTERFACES(AppInterface)
public:
QWidget *CreateWidget(QWidget *parent);
QString name();
};
#endif // MYPLUGIN_H
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/197621.html
標籤:java
上一篇:C語言問題
下一篇:Redis:快取雪崩、擊穿、穿透
