Вот пример SpinBox, который записывает свои изменения в базовые переменные. Основная проблема, с которой я сталкиваюсь, заключается в том, что valueChanged вызывается при создании виджета. Есть ли более элегантный способ сделать это? Я думаю, что это странно, что я подключил виджет сам к себе, но valueChanged не является виртуальным.
class ValueWriterInt: public QSpinBox {
Q_OBJECT
public:
ValueWriterInt(vector<int*> const& value): myValue(value) {
QObject::connect(this, SIGNAL(valueChanged(int)), this, SLOT(valueChanged(int)));
}
~ValueWriterInt() {}
private slots:
void valueChanged(int new_value) {
for (auto it = myValue.begin(); it != myValue.end(); ++it)
**it = new_value;
}
private:
vector<int*> myValue;
};