2012-07-20 54 views
0

我想选择QTableView中,只有行全行。用户不应该知道有任何单元格。我可以设置一个适当的SelectionMode但仍:QTableView中 - 行选择,重点领域

  • 每个单元都有时,它的行被选中
  • 上QTableView中移动鼠标移动“焦点”和光标下选择细胞圆角

如何我可以避免这个问题吗?

回答

1

请尝试QTableView中的方法

setSelectionBehavior(QAbstractItemView::SelectRows); 
+0

将行为设置为SelectRows并将模式设置为SingleSelection在情况下结束,当我可以选择行时,但仍然将鼠标移动到QTableView上会更改其下的单元格颜色。而且所选行中的每个单元仍然有圆角。 – Dejwi 2012-07-21 03:56:29

+0

同时设置这样的行为和模式暂时允许我在不选择多行的情况下调用selectRow(而用户有Shift键),太好了。 – OregonGhost 2013-03-21 14:40:57

0

我有同样的问题。

我结束了使用一个QTreeView,它支持多个列(如表格)。默认的拖放行为可让您拖放,移动和重新排序行。

,使它看起来和行为像一个行交互只表,你需要设置这些属性:

  • allColumnsShowFocus =真(这样你就不会看到具体围绕对焦框(列)项)
  • headerHidden =假(以启用表头)
  • itemsExpandable = FALSE(可以被忽略,如果所有其他属性设置正确)
  • rootIsDecorated =假(这隐藏了扩大句柄topLevelItems)
  • selectionBehavior = SelectRows
  • 的SelectionMode = SingleSelection(或者如你所愿......)
  • 移动行
    • dragEnabled =真
    • acceptDrops =真
    • showDropIndicator =真
    • editTriggers :: selectedClicked =假
    • 所有项目的项目标志:
      • ItemIsSelectable =真
      • ItemIsDragEnabled =真
      • ItemIsDropEnabled = (所以你不能拖动topLevelItem成为另一个项目的子)
      • ItemIsEnabled =真

现在,如果你只使用topLevelItems,TreeView的,只要你想,它的行为。