0

我在 Qt 中创建我的应用程序。我在 QVTWidget 插件中集成了一个 3D PCL 查看器。我想更改用户输入的标准功能,例如在查看器窗口上单击鼠标左键。

以下是班级详情:

class SiLS : public QMainWindow, pcl::visualization::PCLVisualizerInteractorStyle
{
   Q_OBJECT

    public:
       SiLS(QWidget *parent = nullptr);
       ~SiLS();

       void OnLeftButtonDown() override
       {
         std::cout << "Pressed left mouse button." << std::endl;
       }

    private slots:

    private:
       Ui::SiLS *ui;

    protected:

       pcl::visualization::PCLVisualizer::Ptr viewer;
};

SiLS::SiLS(QWidget *parent) : QMainWindow(parent) , ui(new Ui::SiLS)
{
   ui->setupUi(this);

   // Set up the QVTK window
   viewer.reset (new pcl::visualization::PCLVisualizer ("viewer", false));
   ui->BEV_Display->SetRenderWindow(viewer->getRenderWindow());
   viewer->setupInteractor(ui->BEV_Display->GetInteractor(), ui->BEV_Display->GetRenderWindow(), SiLS::New());
   ui->BEV_Display->update();
}

SiLS::~SiLS()
{
    delete ui;
}

GUI 看起来像: 在此处输入图像描述

  1. 但是在窗口内左键单击后,我没有得到输出中的打印语句。

  2. 关闭应用程序窗口后,我收到以下错误:

    错误:在 /home/suraj/VTK/VTK-7.1.1/Common/Core/vtkObject.cxx 中,第 156 行 vtkObject (0x7ffda4148b80):尝试删除具有非零引用计数的对象。

    一般警告:在 /home/suraj/VTK/VTK-7.1.1/Common/Core/vtkObjectBase.cxx 中,第 93 行尝试删除具有非零引用计数的对象

. 有什么我想念的吗?

4

0 回答 0