禁用 "q" Onchar() vtkInteractorStyleSwitch

问题描述

所以我尝试创建我自己的自定义交互器样式,继承自 vtkInteractorStyleSwitch。

我遇到的这个问题是我试图禁用关闭 vtk 窗口的“q”快捷方式。

据我所知,我需要做的就是实现我自己的 OnChar() 方法,而不是在按下 q 时调用 char 上的派生类。然而,这在某种程度上不起作用,当按下 q 时,关闭窗口的命令仍在运行。

作为记录,当我按下 q 时,我看到了我的调试语句“Q PRESS”。我似乎无法弄清楚是谁在调用命令来关闭我认为在派生类中某处的窗口。

class PlaneInteractorStyle : public vtkInteractorStyleSwitch {
public:
    static PlaneInteractorStyle*
    New();
    vtkTypeMacro(PlaneInteractorStyle,vtkInteractorStyleSwitch);

    virtual void
    OnChar() override
    {
        // Get the key press
        vtkRenderWindowInteractor* rwi = this->Interactor;
        std::string key = rwi->GetKeySym();
        std::cout << "KEYY: " << key << "\n";

        if (key == "q") {
            // do nothing
            std::cout << "Q PRESS\n";
        }
    }
};
vtkStandardNewMacro(PlaneInteractorStyle);

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)