Problem with displaying image messages inside Qt GUI with librviz
Hey all,
I'm having a problem that my image messages are displayed in a separate window rather than inside my self-made Qt main window where they should be. Otherwise the code works and the images are showed.
I can display my point cloud messages in the GUI very easily with librviz. There is something different with image display? What is it?
Here is code snippets of both point cloud and image view display initialization in my GUI:
void setup_rviz_lidar()
{
rvizLayoutWidget = new QWidget(centralwidget);
rvizLayoutWidget->setObjectName(QStringLiteral("RvizWidget"));
rvizLayoutWidget->setGeometry(QRect(400, 10, 600, 600));
layoutRviz = new QHBoxLayout(rvizLayoutWidget);
render_panel_ = new rviz::RenderPanel();
layoutRviz->addWidget( render_panel_ );
manager_ = new rviz::VisualizationManager( render_panel_ );
render_panel_->initialize( manager_->getSceneManager(), manager_ );
manager_->initialize();
manager_->startUpdate();
//https://answers.ros.org/question/191721/librviz-display-sensor_msgslaserscan/
// Create point cloud display.
manager_->setFixedFrame("livox_frame");
laser_ = manager_->createDisplay( "rviz/PointCloud2", "Point cloud", true );
laser_->subProp("Topic")->setValue("livox/lidar");
laser_->subProp("Style")->setValue("Points");
laser_->subProp("Size (Pixels)")->setValue("2");
laser_->subProp("Color Transformer")->setValue("Intensity");
laser_->subProp("Invert Rainbow")->setValue("true");
laser_->subProp("Decay Time")->setValue("1");
}
void setup_rviz_video() // pops up as separate window :(
{
rvizLayoutWidget2 = new QWidget(centralwidget);
rvizLayoutWidget2->setObjectName(QStringLiteral("RvizWidget2"));
rvizLayoutWidget2->setGeometry(QRect(10, 215, 390, 390));
layoutRviz2 = new QHBoxLayout(rvizLayoutWidget2);
render_panel2_ = new rviz::RenderPanel();
layoutRviz2->addWidget(render_panel2_);
manager2_ = new rviz::VisualizationManager(render_panel2_);
render_panel2_->initialize( manager2_->getSceneManager(), manager2_);
manager2_->initialize();
manager2_->startUpdate();
image_ = manager2_->createDisplay( "rviz/Image", "Image", true );
image_->subProp("Image Topic")->setValue("camera/ipximage");
}
Thanks in advance!
-Nikko