在插件中使用示教器的内置键盘
一、内置键盘类型说明:
提供标准键盘
void registerStandardKeyboard( QWidget *wd, std::function<std::string(void)> init_cb = nullptr, const std::shared_ptr<InputValidator> &validator = nullptr, std::function<void(std::string)> result_cb = nullptr);
提供string类型键盘
void registerStringKeyboard( QWidget *wd, std::function<std::string(void)> init_cb = nullptr, const std::shared_ptr<InputValidator> &validator = nullptr, std::function<void(std::string)> result_cb = nullptr);
提供表达式键盘
void registerExpressionKeyboard( QWidget *wd, std::function<ExpressionPtr(void)> init_cb = nullptr, std::function<void(ExpressionPtr result_value)> result_cb = nullptr);
提供密码键盘
void registerPasswordKeyboard( QWidget *wd, std::function<std::string(void)> init_cb = nullptr, const std::shared_ptr<InputValidator> &validator = nullptr, std::function<void(std::string)> result_cb = nullptr);
提供输入
ip
地址专用键盘void registerIPAddressKeyboard( QWidget *wd, std::function<std::string(void)> init_cb = nullptr, std::function<void(std::string)> result_cb = nullptr);
提供浮点数字键盘
void registerDoubleKeyboard( QWidget *wd, std::function<std::string(void)> init_cb = nullptr, const std::shared_ptr<InputValidator> &validator = nullptr, std::function<void(std::string)> result_cb = nullptr);
提供正浮点数字键盘
void registerPositiveDoubleKeyboard( QWidget *wd, std::function<std::string(void)> init_cb = nullptr, const std::shared_ptr<InputValidator> &validator = nullptr, std::function<void(std::string)> result_cb = nullptr);
提供整数键盘
void registerIntegerKeyboard( QWidget *wd, std::function<std::string(void)> init_cb = nullptr, const std::shared_ptr<InputValidator> &validator = nullptr, std::function<void(std::string)> result_cb = nullptr);
提供正整数键盘
void registerPositiveIntegerKeyboard( QWidget *wd, std::function<std::string(void)> init_cb = nullptr, const std::shared_ptr<InputValidator> &validator = nullptr, std::function<void(std::string)> result_cb = nullptr);
提供代码编辑键盘
void registerCodeEditerKeyboard( QWidget *wd, std::function<std::string(void)> init_cb = nullptr, const std::shared_ptr<InputValidator> &validator = nullptr, std::function<void(std::string)> result_cb = nullptr);
提供数字键盘
void registerNumberKeyboard( QWidget *wd, std::function<std::string(void)> init_cb = nullptr, const std::shared_ptr<InputValidator> &validator = nullptr, std::function<void(std::string)> result_cb = nullptr);
二、插件中使用示教器内置键盘的方法:
在安装节点和程序节点的`view`类中均提供了`ViewApiProviderPtr view_api_{ nullptr };`接口,该接口可调用到上述内置键盘说明中提到的各类型键盘接口。具体调用方式如下所示:(注意不同类型键盘在使用他们的函数的时候需要注意参数类型,具体需要什么参数,代码中可转到定义处进行查看)
程序节点和安装节点中可调用键盘的接口位置如下:(在程序和安装节点
view
类中)调用方法:
首先,在程序节点或者安装节点
buildUi
函数中为需要添加键盘的控件安装事件过滤器,具体实现如下:
ui->le_test->installEventFilter(this);
其次,我们需要重写
eventFilter
事件处理函数:
bool eventFilter(QObject *watched, QEvent *event) override;
在
eventFilter
事件处理函数中对键盘的调用如下:效果如下: