Slavka_online
@Slavka_online
Интересная личность

Qt map signal реагирует сразу на все?

QPushButton *pButton = new QPushButton("Запустить", ui->ViewData);
            ui->ViewData->setCellWidget(i, 7, pButton);

            connect(pButton,
                    SIGNAL(clicked()),
                    &ButtonSignalMapper,
                    SLOT(map()));

            ButtonSignalMapper.setMapping(pButton, i);

            connect(&ButtonSignalMapper,
                    SIGNAL(mapped(int)),
                    this,
                    SLOT(CellButtonClicked(int)));

            i++;

Вот часть кода добавления в QTableWidget кнопок в ячейку и попытка подключить к ним сигналы, но возникла проблема, в том что если в таблице 8-строк => 8-кнопок, то он реагирует 8 раз.
  • Вопрос задан
  • 196 просмотров
Пригласить эксперта
Ответы на вопрос 1
DeeplessHole
@DeeplessHole
Студент матмеха СпбГУ
Если я правильно понимаю, то вы вызываете этот connect в цикле
connect(&ButtonSignalMapper,
                    SIGNAL(mapped(int)),
                    this,
                    SLOT(CellButtonClicked(int)));

тем самым создавая на ButtonSignalMapper 8 привязок функции CellButtonClicked.
Попробуйте вынести эту привязку из цикла.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы