jfjoch_viewer: ROI can be configured more flexibly

This commit is contained in:
2025-11-05 13:40:12 +01:00
parent a0840f860d
commit 1e255a3ada
12 changed files with 278 additions and 1 deletions

View File

@@ -0,0 +1,55 @@
// SPDX-FileCopyrightText: 2025 Filip Leonarski, Paul Scherrer Institute <filip.leonarski@psi.ch>
// SPDX-License-Identifier: GPL-3.0-only
#include <QHBoxLayout>
#include <QLabel>
#include "JFJochViewerImageROIStatistics_Circle.h"
JFJochViewerImageROIStatistics_Circle::JFJochViewerImageROIStatistics_Circle(QWidget *parent)
:QWidget(parent) {
auto layout = new QHBoxLayout(this);
setFixedWidth(300);
layout->addWidget(new QLabel("x: "));
x = new NumberLineEdit(0, 10000, 0, 1, "", this);
layout->addWidget(x);
layout->addWidget(new QLabel(" y: "));
y = new NumberLineEdit(0, 10000, 0, 1, "", this);
layout->addWidget(y);
layout->addWidget(new QLabel(" r: "));
r = new NumberLineEdit(0, 10000, 0, 1, "", this);
layout->addWidget(r);
connect(x, &NumberLineEdit::newValue, [this] (float) {emit Updated();});
connect(y, &NumberLineEdit::newValue, [this] (float) {emit Updated();});
connect(r, &NumberLineEdit::newValue, [this] (float) {emit Updated();});
}
void JFJochViewerImageROIStatistics_Circle::SetROICircle(const CircleSettings& input) {
Enable();
x->setValue(input.x);
y->setValue(input.y);
r->setValue(input.r);
}
void JFJochViewerImageROIStatistics_Circle::Disable() {
x->setEnabled(false);
y->setEnabled(false);
r->setEnabled(false);
}
void JFJochViewerImageROIStatistics_Circle::Enable() {
x->setEnabled(true);
y->setEnabled(true);
r->setEnabled(true);
}
CircleSettings JFJochViewerImageROIStatistics_Circle::GetROICircle() {
return CircleSettings{.x = x->value(), .y = y->value(), .r = r->value()};
}