C++ 如何禁用QTableView的整列选择?

C++ 如何禁用QTableView的整列选择?,c++,qt,selection,qtableview,qheaderview,C++,Qt,Selection,Qtableview,Qheaderview,此函数接受三个值之一:用于选择项、用于选择行和选择单元格 问题: 我需要的情况下,当点击一个单元格,它被选中,当点击行索引,行被选中,但当点击列标题,整个列不被选中。据我所知,使用此功能无法完成此操作 我需要tableview的行为与设置SelectionBehavior::selectItems时完全相同 但当用户单击标题时,不应选择列 我正在考虑从QHeaderView中禁用列选择,但无法从我的应用程序中找到方法: // get header from QTableView tabl

此函数接受三个值之一:用于选择项、用于选择行和选择单元格

问题:

我需要的情况下,当点击一个单元格,它被选中,当点击行索引,行被选中,但当点击列标题,整个列不被选中。据我所知,使用此功能无法完成此操作

我需要tableview的行为与设置
SelectionBehavior::selectItems
时完全相同

但当用户单击标题时,不应选择列

我正在考虑从
QHeaderView
中禁用列选择,但无法从我的应用程序中找到方法:

    // get header from QTableView tableView (replace with your widget name)
    QHeaderView *header = new QHeaderView(Qt::Horizontal, tableView);
#if QT_VERSION < 0x50000
// Qt 4.8.1
    header->setResizeMode(QHeaderView::ResizeToContents);
#else
// Qt 5.2.0
    header->setSectionResizeMode(QHeaderView::ResizeToContents);
#endif
    header->setHighlightSections(false); // this is what you want

是否尝试筛选标题视图特定部分上的单击事件?这没有帮助。我认为这是关于突出显示部分,而不是选择列。你能再检查一下吗?你说得对!我的案子是SelectRows。如果不在标题上使用任何单击,则可以使用setClickable(false)禁用列选择。我编辑了我的答案。
setClickable
现在已经过时了;改用
setSectionsClickable
    header->setClickable(false);