私はC++とQtから始めています。QPushButtons のマトリックスがあり、それらのクリック イベントを処理したいと考えています。問題は、配列内のボタンの座標をスロットに伝えることができないため、それらで遊ぶことができないことです。整数をスロットに渡すことに成功しましたが、両方の座標を渡すことはできませんでした。私は自分自身を十分に明確にしているかどうかわかりません...それは私の問題のあるコードです:
for (int i = 0; i < mapSize_x; i++) {
for (int j = 0; j < mapSize_y; j++) {
buttonsArray[i][j] = new QPushButton();
ui->mainLayout->addWidget(buttonsArray[i][j], i, j);
connect(buttonsArray[i][j], SIGNAL(clicked()),
signalMapper, SLOT(map()));
signalMapper->setMapping(buttonsArray[i][j], i, j); // here
}
}
connect(signalMapper, SIGNAL(mapped(int, int)),
this, SLOT(buttonClick(int, int)));
setMapping は 2 つのパラメーターしか受け付けないので、3 つ渡したいと思います。回避策はありますか? 私はたくさんグーグルで検索しましたが、まだ答えが見つかりません。また、座標の代わりに QPushButton オブジェクトを渡そうとしましたが、失敗しました。前もって感謝します。