我有一个QTableWidget实例,其cellEntered(int,int)信号与插槽X相关联(高亮显示包含该单元格的行)。我还有一个包含复选框的列。
问题是使用QTableWidget :: setCellWidget()方法将复选框添加到表格的单元格中:
QTableWidgetItem *checkBoxItem = new QTableWidgetItem("");
ui->tableWidget->setItem(rowCount, column, checkBoxItem);
QCheckBox* checkBox = new QCheckBox();
ui->tableWidget->setCellWidget(rowCount, column, checkBox);
connect(checkBox, SIGNAL(clicked(bool)),
this, SLOT(checkbox_clicked(bool)));
当光标位于该列中的单元格上时,不会调用插槽X。
问题不是特别针对复选框,而是针对其他类型的小部件。
我在一些帖子中已经阅读了一些有关SignalMapper类的内容,但该类似乎有助于将信号从小部件映射到插槽。相反,我的问题与表中的信号有关。
有什么建议吗?
干杯,
巴勃罗
答案 0 :(得分:0)
为什么不使用QTableWidgetItem并将其设置为QTableWidgetItem::setCheckState(Qt::CheckState state)可检查?
QTableWidgetItem *check_item = new QTableWidgetItem;
check_item->setCheckState(Qt::Unchecked);
你也可以用旗帜做。
check_item->setFlags(Qt::ItemIsUserCheckable);
将QTableWidget::itemChanged(QTableWidgetItem * item)信号连接到插槽,然后检查是否在那里检查了该项目。