问题遇到的现象和发生背景
用treeview显示qstandardmodel,期望是:点击item的check勾选后触发一个信号,而非点击item触发信号,check勾选后点击item也不会再次触发信号。以下代码是用clicked信号连接槽函数,该方法会导致:当某个item被勾选后,再点击item仍然触发信号,并进入槽函数。
connect(ui->treeView,SIGNAL(clicked(const QModelIndex &)),this,SLOT(slot_getColumnIndexFItem(const QModelIndex &)));
void MainWindow::slot_getColumnIndexFItem(const QModelIndex &index)
{
QStandardItem *item = model->itemFromIndex(index);
if(item->checkState() == Qt::Checked)
{
qDebug()<<item->data(Qt::DisplayRole);
}else
{
return;
}
}
我想要达到的结果
期望信号是由勾选check触发,而非点击item触发,check勾选后点击item也不会再次触发信号