3

无效 setSelectionBehavior ( QAbstractItemView::SelectionBehavior 行为 )

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

问题:

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

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

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

我正在考虑禁用列选择,QHeaderView但找不到如何?

4

1 回答 1

3

从我的应用程序:

    // 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);
于 2014-04-14T13:40:51.877 回答