【发布时间】:2015-04-30 15:30:11
【问题描述】:
我有一个 QTableview(多列,排序),并想添加一个按钮,在当前行下方显示其他数据。为了呈现这些附加数据,我想使用另一个小部件,它填充可变高度并跨越所有行。
虽然我知道我可以为单元格创建委托,但我想知道这是否可以用于行,或者这是否意味着我必须从 tableview 继承并修改其绘制方法,这似乎需要做很多工作对于像我这样的新手。
【问题讨论】:
标签: qtableview
我有一个 QTableview(多列,排序),并想添加一个按钮,在当前行下方显示其他数据。为了呈现这些附加数据,我想使用另一个小部件,它填充可变高度并跨越所有行。
虽然我知道我可以为单元格创建委托,但我想知道这是否可以用于行,或者这是否意味着我必须从 tableview 继承并修改其绘制方法,这似乎需要做很多工作对于像我这样的新手。
【问题讨论】:
标签: qtableview
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();
}
【讨论】:
如果我正确理解了您的问题,那么我认为这就是答案。
QTableView *view = new QTableView;
view->setItemDelegateForRow(int row, QAbstractItemDelegate *delegate);
【讨论】: