问题就在标题里。
没有函数 QTableView::set_Max_Number_SelectedItems( int )。
当所选项目的数量为 2 时,我想禁用项目选择。
Thanks
您可以通过以下方式禁用选择:
connect(ui->tableView->selectionModel(),&QItemSelectionModel::selectionChanged,[=]() {//with lambda
if(ui->tableView->selectionModel()->selectedIndexes().size() > 1)
ui->tableView->setSelectionMode(QAbstractItemView::NoSelection);
});
我这里用过C++11
(CONFIG += c++11
to .pro
文件)和信号和槽的新语法 http://qt-project.org/wiki/New_Signal_Slot_Syntax,但是如果您愿意,当然可以使用旧语法。
但在这种情况下,此用户将根本无法使用选择。如果这是你想要的,那就没问题了。如果不是,那么您可以启用选择,例如tableView
失去焦点或为此提供特殊按钮。
但我也认为下一个代码更适合你:
connect(ui->tableView->selectionModel(),&QItemSelectionModel::selectionChanged,[=]() {//with lambda
if(ui->tableView->selectionModel()->selectedIndexes().size() > 2)
{
QList<QModelIndex> lst = ui->tableView->selectionModel()->selectedIndexes();
ui->tableView->selectionModel()->select(lst.first(),QItemSelectionModel::Deselect);
}
});
它能做什么?当用户尝试选择 2 个以上的项目时,最后选择的项目将取消选择,并且用户根本无法选择 2 个以上的项目,只能选择最后选择的 + 当前选择的项目。我不知道您的任务规范,因此请选择最合适的方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)