Я работаю над следующим окном с QT:
![enter image description here](https://i.stack.imgur.com/FSedW.png)
Для моих строк у меня есть следующая структура:
typedef struct
{
struct{
int x;
int y;
int width;
int height;
int layer;
int idx;
}outputSettings;
QDoubleSpinBox *xSpinBox;
QDoubleSpinBox *ySpinBox;
QDoubleSpinBox *heightSpinBox;
QDoubleSpinBox *widthSpinBox;
QDoubleSpinBox *layerSpinBox;
// Checkboxes
QCheckBox *channelCheckBox;
}myUI;
QVector<myUI> inputBoxes; // Create a row of input boxes per channel
Затем я создаю их в цикле for:
for(i = 0; i < inputChannels; ++i)
{
inputBoxes[i].channelCheckBox = new QCheckBox;
inputBoxes[i].channelCheckBox->setChecked(true);
inputBoxes[i].xSpinBox = new QDoubleSpinBox;
inputBoxes[i].xSpinBox->setRange(minXPos, maxXPos);
inputBoxes[i].xSpinBox->setSingleStep(1);
inputBoxes[i].xSpinBox->setValue(0);
inputBoxes[i].xSpinBox->setDecimals(0);
connect(inputBoxes[i].xSpinBox, SIGNAL(valueChanged(double)), this, SLOT(setXValue(double)));
inputBoxes[i].ySpinBox = new QDoubleSpinBox;
inputBoxes[i].ySpinBox->setRange(minYPos, maxYPos);
inputBoxes[i].ySpinBox->setSingleStep(1);
inputBoxes[i].ySpinBox->setValue(0);
inputBoxes[i].ySpinBox->setDecimals(0);
connect(inputBoxes[i].ySpinBox, SIGNAL(valueChanged(double)), this, SLOT(setYValue(double)));
...
Теперь я застрял на соединении.Я хочу подключить свойство valueChanged моих спинбоксов к моей структуре outputSettings.Эта структура будет моим типом возврата в конце.Я реализовал следующие слоты:
public slots:
void setXValue(double x){inputBoxes[0].outputSettings.x = int(x);}
void setYValue(double y){inputBoxes[0].outputSettings.y = int(y);}
...
Но здесь я не знаю, какой элемент вектора называется функцией.(в настоящее время я только что ввел inputBoxes [0] как пустышку). Моей первой идеей было добавить дополнительный параметр int channel.Но тогда соединение не работает.Поэтому я попытался обойти это с QMapper.Но это не кажется хорошим вариантом для меня, и я действительно не запустил его.
Я был бы очень признателен, если бы кто-нибудь мог мне здесь помочь или хотя бы указать мне верное направление.
Ура.