Qtableview,在行之间添加小部件

时间:2015-04-30 15:30:11

标签: qtableview

我有一个QTableview(多列,排序),并希望添加一个按钮,显示当前行下方的其他数据。为了渲染这些额外的数据,我想使用另一个小部件,它填充一个可变高度并跨越所有行。

虽然我知道我可以为单元格创建委托,但我想知道这是否可以用于行或者是否意味着我必须从tableview继承并修改其paint方法,这似乎是很多工作对于像我这样的新手。

2 个答案:

答案 0 :(得分:0)

QVariant YourTableModel::data(const QModelIndex & index, int32_t role) const
{
  if (!index.isValid()) {
    return QVariant();
  }

  if (role == Qt::DisplayRole || role == Qt::EditRole)
  {
    switch (index.column())
    {
    case YOUR_COL:
      double theDouble = getDoubleFromModelSomewhere();
      return QString::number(theDouble, 'f', 3);  // Format shows 3 decimals
    }
  }

  return QVariant();
}

答案 1 :(得分:0)

如果我理解了你的问题,那么我认为这就是答案。

QTableView *view = new QTableView;
view->setItemDelegateForRow(int row, QAbstractItemDelegate *delegate);