23 #include <QRadioButton>
24 #include <QHBoxLayout>
25 #include <QSpacerItem>
26 #include <QSizePolicy>
27 #include <QIntValidator>
28 #include <QDoubleValidator>
29 #include <QFontMetrics>
34 #define TR(id) OLocalizator::getString("TYSolverParamsWidget", (id))
42 this->paramName = paramName;
44 this->valueLabels = valuesLabel;
45 this->defaultValue = defaultValue;
50 QString defaultValue = dataModelJson[
"default"].toVariant().toString();
51 if (dataModelJson[
"type"] ==
"bool")
52 if (defaultValue ==
"true")
54 else if (defaultValue ==
"false")
58 dataModelJson[
"labels"].toVariant().toStringList(), defaultValue);
63 this->dataModel = dataModel;
65 this->setToolTip(
TR(dataModel->
paramName +
"_help"));
73 emit valueChanged(value);
79 setValue(QString::number(value));
90 this->setLayout(
new QHBoxLayout(
this));
91 this->layout()->setContentsMargins(-1, 0, -1, 0);
93 label =
new QLabel(
this);
96 label->setMinimumWidth(QFontMetrics(
label->font()).horizontalAdvance(
"M") * 15);
97 label->setMaximumWidth(QFontMetrics(
label->font()).horizontalAdvance(
"M") * 15);
98 this->layout()->addWidget(
label);
102 lineEdit->setMinimumWidth(QFontMetrics(
lineEdit->font()).horizontalAdvance(
"M") * 10);
103 lineEdit->setMaximumWidth(QFontMetrics(
lineEdit->font()).horizontalAdvance(
"M") * 10);
108 lineEdit->setValidator(
new QIntValidator());
113 lineEdit->setValidator(
new QRegExpValidator(QRegExp(
"[0-9]*[\\.,][0-9]*")));
116 this->layout()->addWidget(
lineEdit);
117 this->layout()->addItem(
new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum));
121 QObject::connect(
lineEdit, &QLineEdit::textChanged,
this, setValueStr);
139 QRadioButton* radioButton =
new QRadioButton(
groupBox);
143 groupBox->layout()->addWidget(radioButton);
145 groupBox->layout()->addItem(
new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum));
148 this->setLayout(
new QHBoxLayout(
this));
149 this->layout()->addWidget(
groupBox);
152 auto buttonClickedInt =
static_cast<void (QButtonGroup::*)(
int)
>(&QButtonGroup::idClicked);
154 QObject::connect(
buttonGroup, buttonClickedInt,
this, setValueInt);
156 auto toggle_button = [
this](QString
value) {
buttonGroup->button(
value.toInt())->setChecked(
true); };
163 this->setLayout(
new QHBoxLayout(
this));
164 this->layout()->setContentsMargins(-1, 0, -1, 0);
168 this->layout()->addWidget(
checkBox);
173 QObject::connect(
checkBox, &QCheckBox::toggled,
this, setValueBool);
Objet contenant les informations concernant les parametres du solveur.
TYSolverParamsDataModel(QString paramName, QString type, QStringList valuesLabel=QStringList(), QString defaultValue="0")
static TYSolverParamsDataModel * fromJsonObject(QString paramName, QJsonObject dataModelJson)