在插件中使用示教器的内置键盘

一、内置键盘类型说明:

  1. 提供标准键盘

    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);
    

    image_1

  2. 提供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);
    

    image_2

  3. 提供表达式键盘

    void registerExpressionKeyboard(
         QWidget *wd, std::function<ExpressionPtr(void)> init_cb = nullptr,
         std::function<void(ExpressionPtr result_value)> result_cb = nullptr);
    

    image_3

  4. 提供密码键盘

    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);
    

    image_4

  5. 提供输入ip地址专用键盘

    void registerIPAddressKeyboard(
         QWidget *wd, std::function<std::string(void)> init_cb = nullptr,
         std::function<void(std::string)> result_cb = nullptr);
    

    image_5

  6. 提供浮点数字键盘

    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);
    

    image_6

  7. 提供正浮点数字键盘

    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);
    

    image_7

  8. 提供整数键盘

    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);
    

    image_8

  9. 提供正整数键盘

    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);
    

    image_9

  10. 提供代码编辑键盘

    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);
    

    image_10

  11. 提供数字键盘

    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);
    

    image_11

二、插件中使用示教器内置键盘的方法:

在安装节点和程序节点的`view`类中均提供了`ViewApiProviderPtr view_api_{ nullptr };`接口,该接口可调用到上述内置键盘说明中提到的各类型键盘接口。具体调用方式如下所示:(注意不同类型键盘在使用他们的函数的时候需要注意参数类型,具体需要什么参数,代码中可转到定义处进行查看)

程序节点和安装节点中可调用键盘的接口位置如下:(在程序和安装节点view类中)

image_12

调用方法:

  • 首先,在程序节点或者安装节点buildUi函数中为需要添加键盘的控件安装事件过滤器,具体实现如下:

    ui->le_test->installEventFilter(this);

  • 其次,我们需要重写eventFilter事件处理函数:

    bool eventFilter(QObject *watched, QEvent *event) override;

    eventFilter事件处理函数中对键盘的调用如下:

    image_13

    image_14

    效果如下:

    image_15

results matching ""

    No results matching ""