Gui::Gui(Shared* sm) { this->sm = sm; //Creation and setup of Gui elements QGridLayout* mainLayout = new QGridLayout(); labelImage = new QLabel(); mainLayout->addWidget(labelImage, 0, 0); setLayout(mainLayout); setVisible(true); //We connect a signat to a slot to be able to do something from an incoming signal. connect(this, SIGNAL(signal_updateGUI()), this, SLOT(on_updateGUI_recieved())); show(); }
GUI::GUI(Sensors* sensors) { this->sensors = sensors; QGridLayout* mainLayout = new QGridLayout(); labelImage = new QLabel(); labelImage_filtered_hsv = new QLabel(); labelImage_filtered_rgb = new QLabel(); labelImage_hsv = new QLabel(); labelImage_rgb = new QLabel(); QGroupBox* boxRGB = new QGroupBox("RGB"); QGroupBox* boxHSV = new QGroupBox("HSV"); QGridLayout* layRGB = new QGridLayout(); QGridLayout* layHSV = new QGridLayout(); boxRGB->setLayout(layRGB); boxHSV->setLayout(layHSV); sliderR_min = new QSlider(); sliderB_min = new QSlider(); sliderG_min = new QSlider(); sliderR_max = new QSlider(); sliderB_max = new QSlider(); sliderG_max = new QSlider(); textR_min = new QLabel("R min"); textG_min = new QLabel("G min"); textB_min = new QLabel("B min"); textR_max = new QLabel("R max"); textG_max = new QLabel("G max"); textB_max = new QLabel("B max"); textR_value_min = new QLabel(); textG_value_min = new QLabel(); textB_value_min = new QLabel(); textR_value_max = new QLabel(); textG_value_max = new QLabel(); textB_value_max = new QLabel(); sliderR_min->setMaximum(255); sliderG_min->setMaximum(255); sliderB_min->setMaximum(255); sliderR_max->setMaximum(255); sliderG_max->setMaximum(255); sliderB_max->setMaximum(255); layRGB->addWidget(textR_max, 0, 0); layRGB->addWidget(textR_min, 0, 1); layRGB->addWidget(textG_max, 0, 2); layRGB->addWidget(textG_min, 0, 3); layRGB->addWidget(textB_max, 0, 4); layRGB->addWidget(textB_min, 0, 5); layRGB->addWidget(sliderR_max, 1, 0); layRGB->addWidget(sliderR_min, 1, 1); layRGB->addWidget(sliderG_max, 1, 2); layRGB->addWidget(sliderG_min, 1, 3); layRGB->addWidget(sliderB_max, 1, 4); layRGB->addWidget(sliderB_min, 1, 5); layRGB->addWidget(textR_value_max, 2, 0); layRGB->addWidget(textR_value_min, 2, 1); layRGB->addWidget(textG_value_max, 2, 2); layRGB->addWidget(textG_value_min, 2, 3); layRGB->addWidget(textB_value_max, 2, 4); layRGB->addWidget(textB_value_min, 2, 5); sliderH_min = new QDoubleSpinBox(); sliderS_min= new QDoubleSpinBox(); sliderV_min = new QDoubleSpinBox(); textH_min = new QLabel("H min"); textS_min = new QLabel("S min"); textV_min = new QLabel("V min"); sliderH_max = new QDoubleSpinBox(); sliderS_max= new QDoubleSpinBox(); sliderV_max = new QDoubleSpinBox(); textH_max = new QLabel("H max"); textS_max = new QLabel("S max"); textV_max = new QLabel("V max"); textH_value_max = new QLabel(); textS_value_max = new QLabel(); textV_value_max = new QLabel(); textH_value_min = new QLabel(); textS_value_min = new QLabel(); textV_value_min = new QLabel(); sliderH_min->setMaximum(6.29); sliderH_max->setMaximum(6.29); sliderS_min->setMaximum(1.1); sliderS_max->setMaximum(1); sliderV_max->setMaximum(255.1); sliderV_min->setMaximum(255); layHSV->addWidget(textH_max, 0, 0); layHSV->addWidget(textH_min, 0, 1); layHSV->addWidget(textS_max, 0, 2); layHSV->addWidget(textS_min, 0, 3); layHSV->addWidget(textV_max, 0, 4); layHSV->addWidget(textV_min, 0, 5); layHSV->addWidget(sliderH_max, 1, 0); layHSV->addWidget(sliderH_min, 1, 1); layHSV->addWidget(sliderS_max, 1, 2); layHSV->addWidget(sliderS_min, 1, 3); layHSV->addWidget(sliderV_max, 1, 4); layHSV->addWidget(sliderV_min, 1, 5); layHSV->addWidget(textH_value_max, 2, 0); layHSV->addWidget(textH_value_min, 2, 1); layHSV->addWidget(textS_value_max, 2, 2); layHSV->addWidget(textS_value_min, 2, 3); layHSV->addWidget(textV_value_max, 2, 4); layHSV->addWidget(textV_value_min, 2, 5); mainLayout->addWidget(labelImage, 0, 0); mainLayout->addWidget(labelImage_filtered_rgb, 0, 1); mainLayout->addWidget(labelImage_filtered_hsv, 0, 2); mainLayout->addWidget(labelImage_hsv, 2, 2); mainLayout->addWidget(labelImage_rgb, 2, 1); mainLayout->addWidget(boxRGB, 1, 1); mainLayout->addWidget(boxHSV, 1, 2); setLayout(mainLayout); setVisible(true); hsv_image = ColorFilter::draw_hsvmap(320); connect(this, SIGNAL(signal_updateGUI()), this, SLOT(on_updateGUI_recieved())); show(); sliderH_max->setValue(3.8); sliderH_min->setValue(3.2); sliderS_max->setValue(1.0); sliderS_min->setValue(0.5); sliderV_max->setValue(255); sliderV_min->setValue(140); sliderR_max->setValue(0); sliderR_min->setValue(0); sliderB_max->setValue(255); sliderB_min->setValue(0); sliderG_max->setValue(255); sliderG_min->setValue(0); kalman_RGB = new Kalman2D(); kalman_HSV = new Kalman2D(); x_rgb=0; y_rgb=0; y_hsv=0; x_hsv=0; }
GUI::GUI(Robot* robot, Ice::CommunicatorPtr ic) { this->robot = robot; QGridLayout* mainLayout = new QGridLayout(); QGridLayout* layoutControl = new QGridLayout(); QVBoxLayout* layoutButtons = new QVBoxLayout(); camerasWidget = new CamerasWidget(robot); buttonStopRobot = new QPushButton("Stop Robot"); checkLaser = new QCheckBox("Laser"); checkCameras = new QCheckBox("Cameras"); InfoCurrentV = new QLabel("Current v (m/s):"); InfoCurrentW = new QLabel("Current w (rad/s):"); currentV = new QLabel("0"); currentW = new QLabel("0"); canvasVW = new controlVW(); canvasVW->setIC(ic); laserWidget =new LaserWidget(); int indiceFilaGui = 0; layoutControl->addWidget(canvasVW, 0, 0); layoutButtons->addWidget(InfoCurrentV, 0); layoutButtons->addWidget(currentV, 1); layoutButtons->addWidget(InfoCurrentW, 2); layoutButtons->addWidget(currentW, 3); QSpacerItem *item = new QSpacerItem(0,200, QSizePolicy::Expanding, QSizePolicy::Fixed); layoutButtons->addItem(item); layoutButtons->addWidget(buttonStopRobot, 2); layoutButtons->addWidget(checkCameras, 3); layoutButtons->addWidget(checkLaser, 4); mainLayout->addLayout(layoutControl, 0, 0); mainLayout->addLayout(layoutButtons, 0, 1); setLayout(mainLayout); setVisible(true); adjustSize(); connect(this, SIGNAL(signal_updateGUI()), this, SLOT(on_updateGUI_recieved())); connect(buttonStopRobot, SIGNAL(clicked()),this, SLOT(on_buttonStopRobot_clicked()) ); connect(canvasVW, SIGNAL(VW_changed(float,float)), this, SLOT(on_update_canvas_recieved(float, float))); connect(checkLaser, SIGNAL(stateChanged(int)), this, SLOT(on_checks_changed())); connect(checkCameras, SIGNAL(stateChanged(int)), this, SLOT(on_checks_changed())); show(); }