I have a Qt application with visualisation of a VTK data now what i want to do is to capture the point from thr VTK data (3 coordinates) and then launch a function from the MainWindow class (MainWindow::slotLeftButtonPressEvent).
So i have a MainWindow class and another Class MainController wich has a 3 signals (one of them is "sigPointIsPicked" when the point has been selected )
so what i did is
connect(mController, SIGNAL(sigPointIsPicked()), this, SLOT(slotLeftButtonPressEvent()));
where mController is an instance of MainController class.
it seems ok to compile but when run the app and i click left button of the mouse nothing happens QT version 5.4 MainController.h
class MainController : public QObject
{
Q_OBJECT
public:
MainController(StructureSensor * camera);
virtual ~MainController();
void start();
void stop();
vtkSmartPointer<vtkPoints> getClusteredPoints();
vtkSmartPointer < vtkPolyData > getPosedObject();
void setPickedPoint(double &x, double &y, double &z);
signals:
void sigClusteringOK();
void sigClusteringKO();
void sigPointIsPicked();
private slots:
void slotConnectCamera();
void slotCluster();
private :
QStateMachine mStateMachine;
std::shared_ptr<QState> mPickingState;
std::shared_ptr<QState> mVisualisationState;
std::shared_ptr<QState> mFinalState;
std::shared_ptr<QState> mClusteringState;
std::shared_ptr<QState> mVisualizationState;
StructureSensor * mCamera;
PointCloudClusterAlgorithm mCluster;
};
MainWindow.h
class MainWindow : public QWidget
{
Q_OBJECT
public:
MainWindow(MainController * controller, StructureSensor * camera, QWidget * parent = nullptr);
virtual ~MainWindow();
protected:
void closeEvent(QCloseEvent *event);
void Spherefit();
private slots:
void displayPointCloud();
void quit();
void Process_Frame_Button_clicked();
void slotLeftButtonPressEvent(vtkObject *, unsigned long, void *, void *, vtkCommand *command);
private:
MainController * mController;
StructureSensor * mCamera;
Ui::MainWindow mUi; //!< GUI of the view
vtkSmartPointer< vtkRenderer > mRenderer;
vtkSmartPointer< vtkActor > mPointCloudActor;
vtkSmartPointer< vtkVertexGlyphFilter > mVertexGlyphFilter;
vtkSmartPointer< vtkPolyData > mPointCloudPolyData;
pcl::PointCloud<pcl::PointXYZ>::Ptr mCloudPCL;
pcl::ModelCoefficients::Ptr mSphereCoefficients;
};