QTableView - 行选择,专注于字段

时间:2012-07-20 20:30:28

标签: qt qtableview

我想在QTableView中选择整行,只选择行。用户不应该知道有任何细胞。我可以设置一个合适的SelectionMode但仍然是:

  • 每个单元格在选择行时都有圆角
  • 在QTableView上移动鼠标移动“焦点”并选择光标下的单元格

我该如何避免这个问题?

3 个答案:

答案 0 :(得分:1)

请尝试QTableView的方法

setSelectionBehavior(QAbstractItemView::SelectRows);

答案 1 :(得分:0)

答案 2 :(得分:0)

我遇到了同样的问题。

我最终使用了QTreeView,它支持多个列(如表格)。默认的拖放行为允许您仅拖动,移动和重新排序行。

要使其外观和行为类似于仅限行交互的表,您需要设置以下属性:

  • allColumnsShowFocus = true(因此您看不到特定(列)项目周围的焦点框架)
  • headerHidden = false(启用表格标题)
  • itemsExpandable = false(如果正确设置了所有其他属性,则可以忽略)
  • rootIsDecorated = false(这会隐藏topLevelItems的展开句柄)
  • selectionBehavior = SelectRows
  • selectionMode = SingleSelection (或您希望...)
  • 用于移动行:
    • dragEnabled = true
    • acceptDrops = true
    • showDropIndicator = true
    • editTriggers :: selectedClicked = false
    • 所有项目的项目标志:
      • ItemIsSelectable = true
      • ItemIsDragEnabled = true
      • ItemIsDropEnabled = false (因此您无法将topLevelItem拖动为其他项目的子项)
      • ItemIsEnabled = true

现在,如果您只使用topLevelItems,则treeView会按您的需要运行。