これは、基になる変数に変更を書き込む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;
};