实现效果


步骤拆分
- 创建一个弹窗,这个弹窗能够选择颜色,并且返回QColor
- 将颜色添加到vtk画布上面去
代码实现
#ifndef PCL_VIEW_SELECT_COLOR_H
#define PCL_VIEW_SELECT_COLOR_H
#include <QWidget>
class pcl_view_select_color : public QWidget
{
Q_OBJECT
public:
pcl_view_select_color();
~pcl_view_select_color();
void setColor(const QColor &c)
{
if(c.isValid())
{
color=c;
}
}
QColor getColor()
{
return color;
}
private:
QColor color;
};
#endif
#include "pcl_viewer_color_picker.h"
#include <QHBoxLayout>
#include <qcolordialog.h>
pcl_view_select_color::pcl_view_select_color()
{
QColor c=QColorDialog::getColor(Qt::white, this);
if(c.isValid())
{
color=c;
}
else
{
c.setRgb(143,153,159,255);
color=c;
}
}
pcl_view_select_color::~pcl_view_select_color()
{
}
void MainWindow::background_change(){
dialog_color_select =new pcl_view_select_color();
QColor color=dialog_color_select->getColor();
viewer->setBackgroundColor(color.redF(),color.greenF(),color.blueF());
return ;
}