У меня проблема с выполнением нескольких операций проверки.По сути, я нажимаю на действие mark несколько, чтобы вызвать markSeveral (), а затем оттуда вызываю clicked () сигнал списка, чтобы вызвать setcheckBoxes (), а затем устанавливаю флажки.теперь провал совершенно не выполняется в первый раз, но когда я делаю это во второй раз, слот setcheckboxes () вызывается дважды, поэтому d-флажки не установлены.Снова для третьей попытки слот setcheckboxes () называется трижды, но d-флажки действительно устанавливаются.
Почему слот вызывается так много раз, когда я звоню ему только один раз?
пожалуйстаскажите мне, что я делаю не так
Заранее спасибо.вот кусок моего кода:
void Browser::markSeveral()
{
itemClicked=true;
multiSelect=true;
MarkClicked=true;
MarkMenuClicked=true;
connect(list,SIGNAL(clicked(QModelIndex)),this,SLOT(setCheckBoxes(QModelIndex)));
}
void Browser::setCheckBoxes(QModelIndex index)
{
if(MarkClicked ==true && model->data(index,Qt::CheckStateRole) == Qt::Unchecked)
{
model->setData(index,Qt::Checked,Qt::CheckStateRole);
indexList.append(index);
}
else
{
if(MarkClicked ==true && model->data(index,Qt::CheckStateRole) == Qt::Checked)
{
model->setData(index,Qt::Unchecked,Qt::CheckStateRole);
indexList.removeOne(index);
}
}
}