jfjoch_viewer: ROI can be configured more flexibly
This commit is contained in:
@@ -10,16 +10,29 @@ JFJochViewerImageROIStatistics::JFJochViewerImageROIStatistics(QWidget *parent)
|
||||
QVBoxLayout* layout = new QVBoxLayout(this);
|
||||
|
||||
box_radio = new QRadioButton("Box", this);
|
||||
box_radio->setChecked(true);
|
||||
layout->addWidget(box_radio);
|
||||
|
||||
box_settings = new JFJochViewerImageROIStatistics_Box(this);
|
||||
layout->addWidget(box_settings);
|
||||
|
||||
circle_radio = new QRadioButton("Circle", this);
|
||||
layout->addWidget(circle_radio);
|
||||
|
||||
circle_settings = new JFJochViewerImageROIStatistics_Circle(this);
|
||||
layout->addWidget(circle_settings);
|
||||
|
||||
radio_group = new QButtonGroup(this);
|
||||
radio_group->addButton(box_radio, 1);
|
||||
radio_group->addButton(circle_radio, 2);
|
||||
|
||||
connect(box_radio, &QRadioButton::clicked, this, &JFJochViewerImageROIStatistics::BoxButtonClicked);
|
||||
connect(circle_radio, &QRadioButton::clicked, this, &JFJochViewerImageROIStatistics::CircleButtonClicked);
|
||||
connect(box_settings, &JFJochViewerImageROIStatistics_Box::Updated, this, &JFJochViewerImageROIStatistics::BoxButtonClicked);
|
||||
connect(circle_settings, &JFJochViewerImageROIStatistics_Circle::Updated, this, &JFJochViewerImageROIStatistics::CircleButtonClicked);
|
||||
|
||||
circle_settings->Disable();
|
||||
box_radio->setChecked(true);
|
||||
|
||||
layout->addWidget(new QLabel("", this));
|
||||
roi_label = new QLabel("", this);
|
||||
layout->addWidget(roi_label);
|
||||
@@ -50,9 +63,29 @@ void JFJochViewerImageROIStatistics::loadImage(std::shared_ptr<const JFJochReade
|
||||
|
||||
void JFJochViewerImageROIStatistics::SetROIBox(QRect box) {
|
||||
box_radio->setChecked(true);
|
||||
box_settings->ROIBoxConfigured(box);
|
||||
circle_settings->Disable();
|
||||
}
|
||||
|
||||
void JFJochViewerImageROIStatistics::SetROICircle(double x, double y, double radius) {
|
||||
circle_radio->setChecked(true);
|
||||
circle_settings->SetROICircle(CircleSettings{.x = x, .y = y, .r = radius});
|
||||
box_settings->Disable();
|
||||
}
|
||||
|
||||
void JFJochViewerImageROIStatistics::BoxButtonClicked() {
|
||||
box_radio->setChecked(true);
|
||||
box_settings->Enable();
|
||||
circle_settings->Disable();
|
||||
|
||||
emit ROIBoxConfigured(box_settings->GetROIBox());
|
||||
}
|
||||
|
||||
void JFJochViewerImageROIStatistics::CircleButtonClicked() {
|
||||
circle_settings->Enable();
|
||||
box_settings->Disable();
|
||||
circle_radio->setChecked(true);
|
||||
auto tmp = circle_settings->GetROICircle();
|
||||
emit ROICircleConfigured(tmp.x, tmp.y, tmp.r);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user