gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:44:58 25 4
gpt4 key购买 nike

void setSelectionBehavior ( QAbstractItemView::SelectionBehavior behavior )

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

问题:

我需要这样的情况,当单击一个单元格时,它被选中,当单击行索引时,行被选中,但当单击列标题时,整个列未被选中。据我了解,使用此功能无法完成此操作。

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

但是当用户点击标题时,不应选择该列。

我正在考虑从 QHeaderView 中禁用列选择,但找不到怎么做?

最佳答案

来 self 的申请:

    // 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

setHighlightSections(bool) 插槽对 Qt 4 和 Qt 5 有效

编辑:粗心大意请见谅!这仅在您将 SelectRows 或 SelectItems 与 SingleSelection 一起使用时才有效。您可以在源代码 qheaderview.cppqtableview.cpp、插槽 voidQHeaderView::mousePressEvent(QMouseEvent *e); 中找到证据>voidQTableViewPrivate::selectColumn(int column, bool anchor);

对于 SelectItems 可以使用这个插槽:

    header->setClickable(false);

关于c++ - 如何禁用QTableView的整列选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23060110/

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