gpt4 book ai didi

c++ - QTableView - 如何防止选择更改

转载 作者:太空狗 更新时间:2023-10-29 21:45:21 26 4
gpt4 key购买 nike

我有带有自定义表格模型的 QTableView。用户可以选择表中的行,在特定情况下我想防止更改当前选择。

重新选择先前选择的行不是理想的解决方案(发出有关更改的信号)。

那么简单的解决方案是什么?

有没有我没看到的选项?

我需要继承 QTableView 吗?

最佳答案

您可以使用 QAbstractItemView::setSelectionMode(QAbstractItemView::NoSelection) 使 View 不可选

而且您也可以使用 Qt::ItemIsSelectable 在每个项目的基础上执行此操作

Qt::ItemFlags QAbstractItemModel::flags(const QModelIndex & index) const [virtual]

编辑(评论):

您有一个自定义模型,因此您可以设置一个当前行成员变量。然后,覆盖标志:

Qt::ItemFlags YourModel::flags(const QModelIndex & index) const
{
if( _current_row > 0 && index.row() != _current_row)
{
return QAbstractItemModel::flags() | ^Qt::ItemIsSelectable;
}
else
{
return QAbstractItemModel::flags() | Qt::ItemIsSelectable;
}

}

当然,dindt 尝试过,但您明白了。

更新后,如果将 current_row 设置为 -1,则所有都可选择

关于c++ - QTableView - 如何防止选择更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17789893/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com