制作一个简单的 HMI 插件
- 以 Windows + Qt Creator为例 制作一个简单的HMI插件。 Linux 环境下步骤相同,链接 xplugin.so即可。
1. 获取开发包
- 从 RokaeRobot/xCorePlugin-client 获取 ROKAE+ 客户端插件 开发包(头文件、库与示例)。
- 官方下载渠道、克隆方式与版本说明见 下载地址。
2. 工程配置(.pro)
- 使用QtCreator新建一个工程。
- 将Rokae+开发包内的 include和lib文件夹拷贝到工程的pro文件的同级目录。
- 插件名为MyPlugin。
QT += widgets
CONFIG += c++11 plugin no_plugin_name_prefix
TEMPLATE = lib
DEFINES += PLUGIN_NAME=\\\"MyPlugin\\\"
#开启日志模块
DEFINES += LOG_MIN_FILE_LEVEL=XPLUGIN_LOG_LEVEL_DEBUG
INCLUDEPATH += $$PWD/include
LIBS += -L$$PWD/lib/windows -lxplugin
#arm下使用此配置
#LIBS += -L$$PWD/lib/aarch64 -l:xplugin.so
HEADERS += myplugin.h
SOURCES += myplugin.cpp
3. 插件类与注册
- 创建 MyPlugin 插件类。
// myplugin.h
#include "plugincommon.h"
#include "interface/interfacemanager.h"
namespace xplugin {
class MyPlugin : public PluginBase {
Q_OBJECT
public:
explicit MyPlugin(QObject *parent = nullptr) : PluginBase(parent) {
setPluginLabel(tr("My Plugin"));
}
void init() override;
};
}
// myplugin.cpp
#include "myplugin.h"
XPLUGIN_REGISTER(PLUGIN_NAME, MyPlugin)
void xplugin::MyPlugin::init() {
auto *w = new QWidget;
CreateCenterWidget(PLUGIN_NAME, w);
}
要点:
- XPLUGIN_REGISTER(PLUGIN_NAME, MyPlugin) 宏定义中调用xplugin命名空间,因此MyPlugn类需要在xplugin命名空间下定义。
- PLUGIN_NAME 即pro文件中的插件名标识。