Я хочу определить, какая кнопка была нажата, но в моем для цикла , который я использую, чтобы найти нужное QPushButton , его не удается найти. Указатели на эти QPushButtons размещаются в векторе векторов.
Таким образом я соединяю кнопки с функцией, которую я хочу использовать при использовании кнопки
for(int i=0; i<size; ++i)
{
for(int j=0; j<size; ++j)
{
grid->addWidget(board->dis_board[i][j], i, j);
board->dis_board[i][j]->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
connect(board->dis_board[i][j], SIGNAL(clicked(bool)), SLOT(move()));
}
}
}
И здесь вы упомянули функцию
void Game::move()
{
unsigned long x=0;
unsigned long y=0;
QPushButton* buttonSender = qobject_cast<QPushButton*>(sender());
for(; x<board->dis_board.size(); ++x)
{
for(; y<board->dis_board.size(); ++y)
{
if(board->dis_board[x][y] == buttonSender)
break;
}
}
board->move(x,y);
}
где move (x, y) - это метод объекта, называемый board
Проблема в том, что когда я прохожу цикл for в Game :: move () my x и y получить значение 5 (поэтому я предполагаю, что sender () не может быть найден).
В чем может быть проблема? Если потребуется больше кода, я могу доставить больше.
Ошибки не отображаются